目标:
因为家里没有公网IP,不能像访问云服务器一样访问家里的树莓派,所以目标是外网用SSH、VNC访问家里局域网中的树莓派。
工作原理的个人理解:
在云主机上运行frp服务器,在树莓派上运行frp客户端,使他们连接起来,通过访问云主机暴露出来IP:PORT来访问云主机,再由云主机转发到它连接的树莓派。
材料:
1. 一台有公网IP的云主机
2. 一个树莓派
https://github.com/fatedier/frp/releases
在上面网站根据自己的机器下载对应版本的frp
云主机的:
frp_0.17.0_linux_amd64.tar.gz
树莓派的(注意是arm):
frp_0.17.0_linux_arm.tar.gz
frp包内容:
其中frpc...的三个文件是frp客户端,frps...的三个文件是frp服务器端。
配置:
云主机:
在云主机上配置frps.ini
[common]
bind_port = 7000 # 不变
dashboard_port = 8030 # 需要是云主机开放的端口,用于进入frp后台的
dashboard_user = frp-gao # 进入frp后台的用户名
dashboard_pwd = 1998 # 进入frp后台的密码
privilege_token = 1998 # 这个需要和frpc中的token保持一致
启动:
./frps -c ./frps.ini
可以访问“云主机ip:dashboard_port"
树莓派:
在树莓派上配置frp.ini
[common]
server_addr = 47.100.83.146 # 云主机IP
server_port = 7000 # 不变
privilege_token = 1998 # 和frps上的token保持一致
login_fail_exit = false
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22 # 22是ssh的端口
remote_port = 8022 # 用于远程ssh连接的端口,需要是云主机开放的端口
[VNC]
type = tcp
local_ip = 127.0.0.1
local_port = 5900 # 5900是树莓派vnc的端口
remote_port = 8020 # 用于远程vnc连接的端口,需要是云主机开放的端口
启动:
./frpc -c ./frpc.ini
可以在frp后台看到对应的信息:
另外:树莓派需要开启SSH,VNC服务,要不然会拒绝访问。。。
开启方法https://blog.csdn.net/juyuyh/article/details/102984749
测试:
可以在手机上安装vnc viewer
再次强调remote_port必须是云主机开放的端口
输入 云主机ip:remote_port (ssh或vnc的远程端口)
再根据提示输入树莓派的用户名,密码即可连入
来源:CSDN
作者:juyuyh
链接:https://blog.csdn.net/juyuyh/article/details/102985364