前言
准备做个小东西,但是没有公网 IP 无法在外网访问。这里使用 frp 实现内网穿透,无需公网 IP 即可 SSH 连接。
准备
- 一台有公网 IP 的服务器
- frp
步骤
要修改的配置文件 frps.ini 为 server , frpc.ini 为 client
服务端
1
2
3
4
5
6
7# 下载安装,选择合适架构的包
wget https://github.com/fatedier/frp/releases/download/v0.16.1/frp_0.16.1_linux_amd64.tar.gz
# 解压
tar xvf frp_0.16.1_linux_amd64.tar.gz
# 编辑配置文件
cd frp_0.16.1_linux_amd64/
vi frps.ini修改配置
[common]
bind_port = 7000 //client 一会要用到
vhost_http_port = 8080
dashboard_port = 7001 //网页控制台
dashboard_user = admin
dashboard_pwd = admin
privilege_token = 12345服务器 frp 自启动
1
2
3
4
5vi /etc/rc.local
# 末尾添加 frps 路径
/root/frp_0.16.1_linux_amd64/frps -c /root/frp_0.16.1_linux_amd64/frps.ini
# 可以先手动运行看 frp 是否正常运行
公网 IP:dashboard_port客户端(树莓派)
1
2
3
4
5
6
7# 下载安装,树莓派用 arm 架构的包
wget https://github.com/fatedier/frp/releases/download/v0.16.1/frp_0.16.1_linux_arm.tar.gz
# 解压
tar xvf frp_0.16.1_linux_arm.tar.gz
# 编辑配置文件
cd frp_0.16.1_linux_arm/
vi frpc.ini修改配置
[common]
server_addr = 公网 IP
server_port = 7000 //和 server 一致
privilege_token = 12345 //和 server 一致
login_fail_exit = false[ssh]
type = tcp
local_ip = 局域网 IP
local_port = 22
remote_port = 5000 //SSH 连接要使用客户端 frp 自启动
1
2
3sudo vi /etc/rc.local
# exit 0 之前添加 frpc 路径(可以先手动运行看 frp 是否正常运行)
/home/pi/frp_0.16.1_linux_arm/frpc -c /home/pi/frp_0.16.1_linux_arm/frpc.ini外网连接树莓派
1
ssh -oPort=remote_port pi@公网 IP