frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp 协议,为 http 和 https 应用协议提供了额外的能力。
GitHub开源路径:frp
根据操作系统和架构,从Release 页面下载对应版本程序。
本次测试:
客户端: Raspberry Pi(树莓派),架构是arm,32位linux操作系统;
服务端: Ubuntu 64位操作系统
通过 ssh 访问内网 Raspberry Pi:
将 frps 及 frps.ini 放到具有公网 IP (服务器)的机器上
将 frpc 及 frpc.ini 放到处于内网环境的Raspberry Pi上
1. 修改 frps.ini 文件,设置服务器侧绑定端口,使用当前系统未占用的端口
1 | # frps.ini |
2. 在服务器上启动 frps:
1 | ./frps -c ./frps.ini |
3. 修改 frpc.ini 文件,假设 frps 所在服务器的公网 IP 为 x.x.x.x
x.x.x.x 填写IP对应域名也可。
1 | # frpc.ini |
4. 在内网的Raspberry Pi上启动 frpc
1 | ./frpc -c ./frpc.ini |
如果运行报错:
1 | DialTcpByHttpProxy error, StatusCode [403] |
使用root权限运行。
5. 通过 ssh 访问内网的Raspberry Pi,假设用户名是dzw
1 | ssh -oPort=2222 [email protected] |
测试登录成功:
更多详细配置请见原文:frp