服务器准备

分配端口 7000,作为 bind port,分配端口 6000,作为与树莓派 ssh 链接的端口。记得在云服务器中的安全组设置中给 6000 和 7000 端口开放出入的权限。

安装 frp

服务器端

# 下载与安装
wget https://github.com/fatedier/frp/releases/download/v0.24.1/frp_0.24.1_linux_amd64.tar.gz
tar -zxvf frp_0.24.1_linux_amd64.tar.gz

# 修改配置
[common]
bind_port = 7000
vhost_http_port = 8080

# 启动
./frps -c ./frps.ini

# 或者后台启动
nohup ./frps -c ./frps.ini

客户端

# 下载与安装
wget https://github.com/fatedier/frp/releases/download/v0.24.1/frp_0.24.1_linux_arm.tar.gz
tar -zxvf frp_0.24.1_linux_arm.tar.gz

# 修改配置
[common]
server_addr = 服务器的公网ip
server_port = 7000
login_fail_exit = false

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000

# 启动
./frpc -c ./frpc.ini

# 或者后台启动
nohup ./frpc -c ./frpc.ini

外网访问

ssh -oPort=6000 pi@服务器的公网ip

使用 Systemd 实现自动启动 frp

# 安装systemd
apt-get update
apt-get install systemd
apt-get install systemd-sysv
# 复制文件
cp frpc /usr/local/bin/frpc
mkdir /etc/frp
cp frpc.ini /etc/frp/frpc.ini

# 编写 frp service 文件,以 centos7 为例,适用于 debian
mkdir /usr/lib/systemd/system
vim /usr/lib/systemd/system/frpc.service
# 内容如下
[Unit]
Description=frpc
After=network.target

[Service]
TimeoutStartSec=30
ExecStart=/usr/local/bin/frpc -c /etc/frp/frpc.ini
ExecStop=/bin/kill $MAINPID

[Install]
WantedBy=multi-user.target

# 树莓派要先修改root密码,才能启动服务
sudo passwd root

# 启动 frp 并设置开机启动
systemctl enable frpc
systemctl start frpc
systemctl status frpc

# 停止
systemctl stop frpc

References

https://github.com/fatedier/frp/blob/master/README_zh.md https://blog.csdn.net/sinat_30800357/article/details/78532956?locationNum=1&fps=1 https://www.jianshu.com/p/e8e26bcc6fe6