由于 IPv4 地址的短缺,工作环境从原来的独立公网 IP 地址改变成了 NAT 内网。为方便远程访问,实践了一下 frp1 内网穿透,记录如下:
frps
frps 是服务器端的程序。配置文件2如下:
| |
使用frps -c frps.toml启动服务,在浏览器登录 http://server_ip:yyy 可以查看 frp 的运行情况。防火墙要放行上述端口 xxx、yyy。
frpc
frpc 是客户端的程序。配置文件如下:
| |
使用frpc -c frpc.toml启动客户端,之后就可以通过SERVER_IP:端口访问相应业务。如访问ssh server -p mmm,实际访问的就是ssh 192.168.1.2。其中:
- 客户端 token 必须与服务器端一致才能正确连接;
- 在服务器端的防火墙要放行上述端口 nnn、mmm;
- 如果在局域网内有多个主机,可以只在其中一台上配置客户端,通过指定地址来实现多个主机的穿透;
- 每一个代理业务配置一个 proxies 字段,其下的 name 作为区别标识,必须唯一;
- 默认关闭传输数据加密和压缩,按需配置
transport.useEncryption、transport.useCompression来开启。
service
上述使用的是命令行开启服务,为方便起见可配置成自启动模式。
- 在 Linux 下可以使用 systemd 将其配置为服务,从而用 systemd 命令来方便地管理。以 frps 为例,frpc 类似参考:
| |
内容为:
| |
- 在 Windows 下,可以用开机启动脚本,或者将其注册为系统服务来实现。
| |
sc 的配置比较容易出错,Windows 下更简单方便地注册、管理服务,推荐使用 NSSM3。
docker
还可以用 docker 方式安装4,以 frps 举例,frpc 可参考修改:
| |
配置文件存放在 config 下的 frps.toml。
- frp 是一个使用 go 语言开发的反向代理服务,可用于内网穿透,支持 tcp, udp 协议。项目地址为https://github.com/fatedier/frp
[return] - frp 的配置文件曾经为 ini 格式,现官方推荐使用 toml 格式。
[return] - NSSM 的项目地址为 https://nssm.cc/
[return] - docker 镜像分别在 https://hub.docker.com/r/snowdreamtech/frps 和 https://hub.docker.com/r/snowdreamtech/frpc
[return]
