0%

利用frp进行Raspberry Pi的内网穿透

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
2
3
4
# frps.ini
[common]
bind_port = 7000
log_file = ./frps.log

2. 在服务器上启动 frps:

1
./frps -c ./frps.ini

3. 修改 frpc.ini 文件,假设 frps 所在服务器的公网 IP 为 x.x.x.x

x.x.x.x 填写IP对应域名也可。

1
2
3
4
5
6
7
8
9
10
11
# frpc.ini
[common]
server_addr = dzwspace.com
server_port = 7000
log_file = ./frpc.log

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 2222

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