为什么琢磨这个frp内网穿透服务,因为有一套视频监控系统使用的移动的网络,一直用的好好的,在远程也可以监控,但是突然不能用了,经过检查移动把分配的公网IP变成了内网IP,跟运营商理论也挺费劲的,所以就用了监控录像机里自带的云端转发,但是使用效果明显不行,速度太慢了,于是就想自己搭建一个内网穿透的服务器,网上虽然有这些服务,比如花生壳、国内的ngrok等等,但是觉得还是自己搭建服务器带宽有保证,下面记录frp服务器安装的笔记。
一、frp服务器搭建的准备工作
1、一台有公网IP的服务器或者VPS,我这里选择了阿里云的vps;
2、一个域名,把这个域名解析到上面所说的服务器或者VPS的IP上,根据需要可以解析泛域名,我这里用了一个frp.xxorg.com做解析,同时解析*.frp.xxorg.com
3、下载frp服务器软件https://github.com/fatedier/frp/releases ,根据自己的系统选择,我的是linux 64位的系统,所以下载了frp_0.9.3_linux_amd64.tar.gz ,文件解压后只需要frps开头的,这个服务器端的文件,frpc开头的是客户端(待穿透的内网计算机)的文件。
二、frp服务器的搭建
其实很简单,把上面下载的frps文件和frps.ini文件复制到服务器上的某个目录,加入放在 /root/frp目录下,然后修改frps文件的权限为可执行,或者直接给予777的权限。然后修改frps.ini的内容为下面的内容,可以删除原文件直接用下面的代码粘贴到frps.ini里面,这里是以特权模式运行,方便添加客户端。
[common] bind_port = 7000 # 服务器监听端口 vhost_http_port = 8080 # http协议穿透时使用的端口 privilege_mode = true # 以特权模式运行 privilege_token = keuqricjswosdpfk # 这个值随意填写,但是要与客户端的值相同 privilege_allow_ports = 50000-60000 # 端口白名单,只有这个范围内的端口可以被使用 max_pool_count = 100 dashboard_port = 5500 # 管理面板的端口号 dashboard_user = admin # 管理面板的用户名 dashboard_pwd = admin # 管理面板的密码
然后就可以运行frp服务了,先进入frp目录,然后运行,至此frp服务器就算搭建完成了。
cd /root/frp nohup ./frps -c ./frps.ini & # nohup是为了让frp后台运行,关闭控制台后依然能运行,或者使用./frps -c ./frps.ini 关闭控制台后程序就停止了
三、内网客户端穿透设置
跟第一步下载软件一样,根据客户端电脑的系统下载对应的程序,我的待穿透的内网电脑是win7 32位系统,所以选择下载frp_0.9.3_windows_386.zip ,解压后,只需要frpc.exe和frpc.ini,这两个文件是客户端文件,同样修改frpc.ini为以下内容。
[common] server_addr = www.xxorg.com server_port = 7000 privilege_token = keuqricjswosdpfk #这个值要与前面服务器端设置的一致 host_http_port = 8080 [ssh1] type = http custom_domains = test.frp.xxorg.com #修改test为其他,不要重名 privilege_mode = true use_gzip = true use_encryption = true local_port = 80 pool_count = 20
然后可以运行客户端的程序进行链接服务器进行穿透了,在命令行里输入
d:\frp\frpc.exe -c d:\frp\frpc.ini
这时访问http://test.frp.xxxx.com:8080就可以看到内网电脑上安装的http服务了。