前言
准备做个小东西,但是没有公网 IP 无法在外网访问。这里使用 frp 实现内网穿透,无需公网 IP 即可 SSH 连接。
准备
- 一台有公网 IP 的服务器
- frp
步骤
要修改的配置文件 frps.ini 为 server , frpc.ini 为 client
服务端
1234567 | # 下载安装,选择合适架构的包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 自启动
12345 | 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端口,这个也要释放允许访问
客户端(树莓派)
1234567 | # 下载安装,树莓派用 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 自启动
123 | 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 |