服务端(frps):有公网IP的云服务器(腾讯云/阿里云等)
客户端(frpc):树莓派
在客户端(树莓派),下载合适的frp软件并解压(linux_arm.tar.gz)
sudo wget https://github.com/fatedier/frp/releass/download/v0.35.1/frp_0.35.1_linux_arm.tar.gz
tar -zxvf frp_0.35.1_linux_arm.tar.gz
编辑文件frpc.ini
cd frp_0.35.1_linux_arm
sudo vim frpc.ini
添加以下内容
[common]
server_addr = 公网IP (服务端地址)
server_port = 7000 (服务端开放的端口)
token=raspberrypi(连接口令)
[ssh] (ssh穿透)
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000 (需要在服务端开放此端口才能用!!!)
[vnc] (vnc远程桌面穿透)
type = tcp
local_ip = 127.0.0.1
local_port = 5900
remote_port = 5902 (需要在服务端开放此端口才能用!!!)
[web] (web服务器使用)
type = http
local_port = 8080
custom_domains = web服务器地址
[motion] (实现外网查看motion视频流)
type = tcp
local_ip = 127.0.0.1
local_port = 8081
remote_port = 8081
保存配置,使用./frpc -c ./frpc.ini启动
注意,不同设备服务端开放端口不能一样!!!
在服务端(云服务器),需要根据系统下载合适的frp软件(linux_amd64.tar.gz),下载地址https://github.com/fatedier/frp/releases,解压软件,编辑frps.ini文件,添加以下内容
[common]
bind_port = 7000
dashboard_port = 7500 (frp管理界面端口)
dashboard_user = user
dashboard_pwd = password
vhost_http_port=8080 (web端口)
token=raspberrypi
保存配置,使用./frps -c ./frps.ini启动,浏览器输入 公网IP:7500即可访问frp面板(需要先在云服务器开放端口)
若报错可以尝试kill进程号重试 (ps aux 查看进程)
frp自启动:
复制frpc启动命令及配置文件到系统相应目录:
sudo cp frpc /usr/local/bin/frpc
sudo mkdir /etc/frpc
sudo cp frpc.ini /etc/frpc/frpc.ini
配置frpc.service
sudo nano /usr/lib/systemd/system/frpc.service
[Unit]
Description=Frp Client
After=network.target
Wants=network.target
[Service]
Restart=on-failure
RestartSec=5
ExecStart=/usr/local/bin/frpc -c /etc/frpc/frpc.ini
ExecStop=/bin/kill $MAINPID
[Install]
WantedBy=multi-user.target
设置开机自启
systemctl enable frpc
启动服务
systemctl start frpc
查看服务是否生效
sudo systemctl list-units |grep frpc
查看日志
sudo systemctl status frpc
重新加载服务(修改了服务项后)
sudo systemctl daemon-reload
对服务端frps.service同样配置,将frpc改为frps即可
后台运行frp服务
服务端: nohup ./frps -c frps.ini >/dev/null 2>&1 &
客户端: nohup ./frpc -c frpc.ini >/dev/null 2>&1 &
说明:>/dev/null 2>&1 &,表示丢弃
使用vnc远程连接树莓派示例(树莓派需先开启vnc服务):
在本地设备的vnc viewer上编辑vnc server为:www.x.love:5902 [公网IP:remote_port],点击连接,输入树莓派的登录账号密码即可