准备工作

公网IP 必须有一个外网服务器或者具有公网IP的frp服务

树莓派 raspberry pi

服务器

下载frp

按照服务器对应的系统架构下载frp否则无法运行,这里我下载amd6464位
GitHub/frp 下载地址

打开服务器的终端运行以下命令将压缩包下载到服务器。(如果网络问题下不动也可以下载到电脑然后FTP传到服务器)

这里我习惯新建一个frps的文件夹然后把压缩包放进去。例:/root/frps/frp_0.44.0_linux_amd64

1
wget https://github.com/fatedier/frp/releases/download/v0.44.0/frp_0.44.0_linux_amd64.tar.gz

下载完后cd到压缩包存放的目录然后运行下面的命令解压。例:cd /root/frps/

1
tar -zxvf frp_0.44.0_linux_amd64.tar.gz

配置frp

修改frps.ini文件

1
sudo nano frps.ini

删除文件内的全部配置信息写入以下内容(只是个示例,按照实际需求配置):

1
2
3
4
5
[common]
bind_port = 7000 #连接服务器的端口
vhost_http_port = 6001 #http的端口
login_fail_exit = false #如果为 false,则启动失败不会退出
token = ojbk #身份验证,用来证明我是我,不然谁都可以连接就不好了,要和下面树莓派的配置文件的一致才可以连接。

配置完成后cd到ftp的解压目录下,输入下面指令运行ftp:例:cd /root/frps/frp_0.44.0_linux_amd64

1
./frps -c ./frps.ini

树莓派

下载frp

GitHub/frp 下载地址

因为我安装的是64位的操作系统,所以这里要下载frp_0.44.0_linux_arm64.tar.gz,如果是32位系统或者不知道是多少位,安装frp_0.44.0_linux_arm.tar.gz即可。

打开树莓派的终端运行以下命令将压缩包下载到树莓派。(如果网络问题下不动也可以下载到电脑然后FTP传到树莓派)

这里我习惯新建一个frpc的文件夹然后把压缩包放进去。例:/home/pi/frpc/frp_0.44.0_linux_arm64

1
wget https://github.com/fatedier/frp/releases/download/v0.44.0/frp_0.44.0_linux_arm64.tar.gz

下载完后cd到压缩包存放的目录然后运行下面的命令解压。例:cd /home/pi/frpc/

1
tar -zxvf frp_0.44.0_linux_arm64.tar.gz

配置frp

cd到解压完的文件中修改frpc.ini文件例:cd /home/pi/frpc/frp_0.44.0_linux_arm64

1
sudo nano frpc.ini

删除文件内的全部配置信息写入以下内容(只是个示例,按照实际需求配置):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#-----------------隧道配置文件 服务器节点配置项-----------------
#-----------------注意 井号开头的内容为注释
[common]
server_addr = 填写你的服务器ip
server_port = 7000 #frp绑定的端口
login_fail_exit = false #如果为 false,则启动失败不会退出
token = ojbk #身份验证,用来证明我是我,不然谁都可以连接就不好了,要和上面服务器的配置文件的一致才可以连接。
#-----------------下方为隧道节点配置-----------------
#可以删除不需要的穿透节点 不用一次全部穿透-----------------
#一个 [] 下的内容为一段穿透节点
[VNC] # 名称,可按照需求随便改,入SSH,VNC等等。
type = tcp # 隧道类型
local_ip = 127.0.0.1 #树莓派的内网ip
local_port = 5900 # 需要需要穿透的内网端口号
remote_port = 5900 #远程服务器的端口号,外网的对应端口,需要在服务器上单独开一个端口,不可以使用配置文件内的两个端口。

配置完成后cd到ftp的解压目录下,输入下面指令运行ftp:例:cd /home/pi/frpc/frp_0.44.0_linux_arm64

1
./frpc -c ./frpc.ini

[进阶]设置frp开机启动

这里统一使用使用systemctl来控制启动

服务器

sudo nano /lib/systemd/system/frps.service

在frps.service里写入以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
[Unit]
Description=fraps service
After=network.target syslog.target
Wants=network.target

[Service]
Type=simple
#启动服务的命令(此处写你的frps的实际安装目录)
ExecStart=/填写frps的绝对路径/frps -c /填写frps的绝对路径/frps.ini

[Install]
WantedBy=multi-user.target

重载服务文件
sudo systemctl daemon-reload
然后就启动frps
sudo systemctl start frps
再打开自启动
sudo systemctl enable frps

相关命令

1
2
3
4
5
6
7
8
9
10
//启动命令
sudo systemctl start frps
//停止命令
sudo systemctl stop frps
//重启命令
sudo systemctl restart frps
//查看状态
sudo systemctl status frps
//停止开机自启动
systemctl disable frps

树莓派

sudo nano /lib/systemd/system/frpc.service

在frpc.service里写入以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
[Unit]
Description=fraps service
After=network.target syslog.target
Wants=network.target

[Service]
Type=simple
#启动服务的命令(此处写你的frpc的实际安装目录)
ExecStart=/填写frpc的绝对路径/frps -c /填写frpc的绝对路径/frps.ini

[Install]
WantedBy=multi-user.target

重载服务文件
sudo systemctl daemon-reload
然后就启动frpc
sudo systemctl start frpc
再打开自启动
sudo systemctl enable frpc

相关命令

1
2
3
4
5
6
7
8
9
10
//启动命令
sudo systemctl start frpc
//停止命令
sudo systemctl stop frpc
//重启命令
sudo systemctl restart frpc
//查看状态
sudo systemctl status frpc
//停止开机自启动
systemctl disable frpc