共计 1265 个字符,预计需要花费 4 分钟才能阅读完成。
前言
准备做个小东西,但是没有公网 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/frp_0.21.0_linux_amd64.tar.gz
# 解压
tar -zxvf frp_0.21.0_linux_amd64.tar.gz
# 编辑配置文件
cd frp_0.21.0_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
5
|
vi /etc/rc.local
# 末尾添加 frps 路径
/root/frp_0.21.0_linux_amd64/frps -c /root/frp_0.21.0_linux_amd64/frps.ini
# 可以先手动运行看 frp 是否正常运行
公网 IP:dashboard_port
|
在这里一定要注意腾讯云安全组的问题以及宝塔的防火墙,我一开始开启了腾讯云安全组放心了端口,发现在外网访问还是不行,后来取宝塔面板看了下还有个防火墙,这下算是明白了,立马添加相应的规则就可以外网访问了。这个会包含客户端的remote_port端口,这个也要释放允许访问
客户端(树莓派)
1
2
3
4
5
6
7
|
# 下载安装,树莓派用 arm 架构的包
wget https://github.com/fatedier/frp/releases/download/frp_0.21.0_linux_arm.tar.gz
# 解压
tar xvf frp_0.21.0_linux_arm.tar.gz
# 编辑配置文件
cd frp_0.21.0_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
3
|
sudo vi /etc/rc.local
# exit 0 之前添加 frpc 路径(可以先手动运行看 frp 是否正常运行)
/home/pi/frp_0.21.0_linux_arm/frpc -c /home/pi/frp_0.21.0_linux_arm/frpc.ini
|
外网连接树莓派
1
|
ssh -oPort=remote_port pi@公网 IP
|