最近由于个人原因离校一段时间,但机房电脑数据太多懒得处理。遂花了半小时左右搭建了 frp 服务器。
准备工作
frp 就是 fast reverse proxy。(目前笔者用到的)功能就是借助一台有公网 ip 的服务器作为中转,把内外网的流量连接起来。
先买了台小鸡来充当公网主机(服务端)。
确保机房的设备,也就是内网主机(客户端)网络畅通。
测试了内网主机能够直连公网主机。
服务端搭建
先自行下载解压 frp。
| 1 | mkdir -p /etc/frp/ | 
服务器端使用的是可执行文件是frps,配置文件是frps.ini。
最简单的配置就是这样。
| 1 | # frps.ini | 
可以参考frps_full.ini,内附有注释。
下面假设我的服务器 ipv4 地址为114.51.41.9,可使用的端口为11450~11466。目前我自己写的配置如下:
| 1 | [common] | 
bind_port 即用客户端连接到服务端的端口,需要保证其被服务端 firewall 放行。
dashboard 相关的几条,开启了一个 http://[server_addr]:11451 的 dashboard,可以查看客户端的连接状态。
直接./frps -c frps.ini启动 frp。
开机启动
作为把裤子都卖给 systemd 的壬,本人用 systemd 来启动 frps 服务。
v0.37.0 压缩包下附带一个 ./systemd/ 文件夹,内附有 frps.service。
但是实际上不太能直接用,得自己改改。
| 1 | vim ./systemd/frps.service | 
客户端搭建
客户端使用的是可执行文件是frpc,配置文件是frpc.ini。
| 1 | [common] | 
common中的token需要和服务端frps.ini中common下token一致。user的设定是为避免多个客户端 proxy 重名导致的连接失败。
此时,我们就可以使用ssh -p 11455 user@114.51.41.9来使用ssh登录到客户端了。
注意,这里local_ip也可以为客户端内网中其他可访问 ip。
当然先要./frpc -c frpc.ini启动 frp。
开机启动
Windows 的开机启动很奇怪,我们直接用 winsw 注册一个系统服务实现开机自启。
下载 release 中的.exe文件,任意改名,下以startfrpc.exe为例。
放入和 frp 相同的目录中,在同一个目录里创建一个 utf8 编码的文本文件,改名为startfrpc.xml,填入以下内容:
| 1 | <service> | 
name与description字段分别是服务的名称与介绍。
以管理员权限执行命令:
| 1 | startfrpc.exe install | 
如果要卸载该服务,则执行:
| 1 | startfrpc.exe stop |