最近买了台服务器,配置虽然不高,但是还是总想着去折腾折腾。因为家里没有公网ip,没办法直连家中的设备,便想到通过中间服务器进行转发来实现。于是就想到FRP。
frp介绍- 对于 http 服务的主机,支持自定义域名绑定,使多个域名可以共用一个80端口。
- 利用处于内网或防火墙后的机器,对外网环境提供 tcp 服务,例如在家里通过 ssh 访问处于公司内网环境内的主机。
- frp分服务器端 frps和 客户端frpc
1. 下载 frp 压缩包并上传到服务器上解压到 root 目录下新建 frp 文件夹内。2. 之后给所有的文件设置 777 权限。3. 打开 ssh,测试 frp 是否正常。
cd /root/frp
./frps --help
如果显示
-bash: ./frps: cannot execute binary file: Exec format error
是错了版本,显示一堆flags -v什么的就正确了。
4. 配置 frps.ini 文件,下面端口可以根据自己情况设置,YourUsername,YourPassword,YourToken 三项根据情况设置一下。
[common]
bind_addr = 0.0.0.0
bind_port = 5443
kcp_bind_port = 5443
dashboard_port = 6443
#认证超时时间,默认900秒
authentication_timeout = 900
#服务端面板的登录用户名,自行设置,后面有用。
dashboard_user = YourUsername
#服务端面板的登录密码,自行设置,后面有用。
dashboard_pwd = YourPassword
#http端口,不要设置80,否则和宝塔面板端口号冲突
vhost_http_port = 808
#https端口,不要设置443,否则和宝塔面板端口号冲突
vhost_https_port = 909
#相当于客户端连接服务端的通关密码,随便设置,后面有用。
token = YourToken
max_pool_count = 50
tcp_mux = true
#你绑定域名的一级域名,假如你给远程桌面绑定frp.baidu.com,这里就填baidu.com。以后你就可以通过frp.baidu.com连接远程桌面了。还不懂?不急,后面一步步来,先照做就行了。
subdomain_host = YourDomain
5. 通过 ssh 开启 udp 端口
firewall-cmd --zone=public --add-port=6900/udp --permanent
firewall-cmd --zone=public --add-port=6443/udp --permanent
firewall-cmd --zone=public --add-port=5443/udp --permanent
firewall-cmd --zone=public --add-port=808/udp --permanent
firewall-cmd --zone=public --add-port=909/udp --permanent
firewall-cmd --reload
6. 启动 frps
cd /root/frp./frps -c frps.ini
服务器端完成,之后打开了ip:6443,打开了,心里美滋滋。
之后去配置自己的frpc端,自己的路由器是斐讯k2,刷了老毛子固件,直接输入粘贴,填入ip和YourToken,本地填好要转发的IP地址和端口。
[common]
#你的服务端IP地址
server_addr = ×.×.×.×
#服务端设置的bind_port端口号
server_port = 5443
#服务端设置的token
token = YourToken
[remote]
type = tcp
#客户端所在内网的IP地址
local_ip = 192.168.×.×
local_port = 3389
#远程连接的端口号,可自行设置,默认6900
remote_port = 6900
#绑定二级域名的前缀,默认frp,假如在服务端设置了ccode.fun。那么远程连接域名就是frp.ccode.fun。
subdomain = frp
老毛子路由器
首先测试的是路由器192.168.123.1的地址,成功了!因为访问我用的ip,为了简单点,通过域名绑定到服务器上,之后为了避免每次都输入端口,在宝塔网站上用了反代理。
反代理
反代理
通过远程路由器还可以进一步的控制家中的其他设备,也可以通过路由器的端口转发来做个家内的小网站。
,