Frp内网穿透之frps服务端部署
由于现在IPv4地址的短缺,在国内不可能每个设备都会分配到一个公网IP,因此从公网中访问自己的私有设备向来是一件难事儿。本次带大家了解一下frp内网穿透的服务端教学,让你也能够部署一个内网穿透服务。
frp简介
通俗的说,frp是一个反向代理软件,它不仅轻量且功能很强大,可以使处于内网或防火墙后的设备对外界提供服务,它支持HTTP、TCP、UDP等众多协议。本文使用的版本为v0.52.3做为演示教程。
frp程序文件地址:https://github.com/fatedier/frp/releases
中文官方网址:https://gofrp.org/zh-cn/
服务器相关
服务器相关: 1.因为frp的原理是利用服务端(所准备的具有公网IP的服务器)进行转发,因而服务器的速度直接决定了之后连接的质量,请根据自己的需要选择相应主机配置。 2.centos系统的官方在逐渐的停止更新和维护,本文的演示使用了rocky linux9系统,如果是使用centos7等系统亦可,命令基本一致。frp客户端和服务端本身同时均支持Linux和Windows,且配置方法一样,请根据实际环境自行测试。
frp服务端部署
因为centos7等国内运维人习惯的系统即将停止官方的支持,我在这里使用centos的平替rocky linux9系统,故在frp服务端使用的是此版本:
我们首先远程登录到服务器,本文将frp服务端文件存放在/usr/opt/目录下作为演示,具体使用时可以视自己的需求忽略此步骤或自定义安装在其它目录:
1.使用wget命令将frp软件压缩包下载下来:
$ wget https://github.com/fatedier/frp/releases/download/v0.52.3/frp_0.52.3_linux_amd64.tar.gz
-2023-11-10 19:24:30-- https://github.com/fatedier/frp/releases/download/v0.52.3/frp_0.52.3_linux_amd64.tar.gz
正在解析主机 github.com (github.com)... 20.205.243.166
正在连接 github.com (github.com)|20.205.243.166|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 302 Found
位置:https://objects.githubusercontent.com/github-production-release-asset-2e65be/48378947/dbb4b12e-609f-4a3e-8938-8a6152a6c568?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20231110%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20231110T112352Z&X-Amz-Expires=300&X-Amz-Signature=1bb4aa1e20a86f198a4f9d08c366fc0be4fd9fdb89e4a0304038b480ce76da21&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=48378947&response-content-disposition=attachment%3B%20filename%3Dfrp_0.52.3_linux_amd64.tar.gz&response-content-type=application%2Foctet-stream [跟随至新的 URL]
--2023-11-10 19:24:33-- https://objects.githubusercontent.com/github-production-release-asset-2e65be/48378947/dbb4b12e-609f-4a3e-8938-8a6152a6c568?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20231110%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20231110T112352Z&X-Amz-Expires=300&X-Amz-Signature=1bb4aa1e20a86f198a4f9d08c366fc0be4fd9fdb89e4a0304038b480ce76da21&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=48378947&response-content-disposition=attachment%3B%20filename%3Dfrp_0.52.3_linux_amd64.tar.gz&response-content-type=application%2Foctet-stream
正在解析主机 objects.githubusercontent.com (objects.githubusercontent.com)... 185.199.108.133, 185.199.109.133, 185.199.110.133, ...
正在连接 objects.githubusercontent.com (objects.githubusercontent.com)|185.199.108.133|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:11781267 (11M) [application/octet-stream]
正在保存至: “frp_0.52.3_linux_amd64.tar.gz”
frp_0.52.3_linux_amd64.tar.gz 61%[=================================================> ] 6.89M 25.4KB/s 剩余 2m 57s
2.然后将文件移动至/opt目录并解压和修改解压后的目录名:
$ tar -zxvf frp_0.52.3_linux_amd64.tar.gz
frp_0.52.3_linux_amd64/
frp_0.52.3_linux_amd64/LICENSE
frp_0.52.3_linux_amd64/frps.toml
frp_0.52.3_linux_amd64/frpc
frp_0.52.3_linux_amd64/frpc.toml
frp_0.52.3_linux_amd64/frps
$ mv frp_0.52.3_linux_amd64 /opt/frps
3.进入frp目录,使用ll命令可看出下面有frps和frpc等文件字样:
$ cd /opt/frps
$ ll
总用量 29996
-rwxr-xr-x. 1 sean sean 13905920 10月 24 10:56 frpc
-rw-r--r--. 1 sean sean 142 10月 24 10:57 frpc.toml
-rwxr-xr-x. 1 sean sean 16789504 10月 24 10:56 frps
-rw-r--r--. 1 sean sean 16 10月 24 10:57 frps.toml
-rw-r--r--. 1 sean sean 11358 10月 24 10:57 LICENSE
其中frps前缀的文件为服务端所用的文件,frpc前缀的为客户端所用的文件,两者不要弄错! 由于是服务端部署,所以在此处我们只需要关注frps和frps.toml等文件,旧版本可能配置为frps.ini,但我这里下载的是我写这篇文章时最新的版本,配置文件被修改为frps.toml。frpc前缀的文件小伙伴们可以自行决定是否删除。
4.接下来我们编辑frps.toml文件,从0.52.1开始,配置文件的配置项和前面的版本的配置项有所不同。
vim frps.toml
文件里面最少需要有下面的内容:
bindAddr = "0.0.0.0"
bindPort = 7000
vhostHTTPPort = 80
vhostHTTPSPort = 443
auth.method = "token"
auth.token = "12345678"
webServer.addr = "0.0.0.0"
webServer.port = 7500
webServer.user = "admin"
webServer.password = "admin"
其中:
bindAddr:绑定服务器的IPbindPort:为服务器端端口auth.method:为客户端与服务器端的连接设置一个模式auth.token: 为客户端与服务器端的连接设置一个验证vhostHTTPPort: 客户端访问的http端口vhostHTTPSPort客户端访问的https端口webServer.addr:为frps登录dashboard的地址webServer.port为frps登录dashboard的端口webServer.user为frps登陆dashboard的用户名webServer.password为frps登陆dashboard的密码
输入完成后按Esc键,输入wq保存并退出。
5.用cat命令查看文件内容已成功保存
6.接下来输入命令运行frps服务端,需要管理员权限,可以是sudo提权的,也可以是root用户:
sudo ./frps -c ./frps.toml
看到success字样表示已运行成功:
7.此时我们可以使用浏览器访问http://ip地址:7500,网页上输入自己设定的账号密码即可登录frps服务端查看相关信息:

设置开机启动
上面的教程在frps运行后你一旦退出Terminal或使用了Ctrl+C命令,那么你的frps服务端也就停止运行了,此处教大家如何设置开机自启动。
1.添加systemd配置文件:
sudo vim /usr/lib/systemd/system/frp.service
2.根据官方文档编辑文件内容如下(ExecStart的内容请根据自己frp安装目录修改):
[Unit]
# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /opt/frps/frps -c /opt/frps/frps.toml
[Install]
WantedBy = multi-user.target
3.设置frp开机启动:
sudo systemctl daemon-reload
sudo systemctl enable frps
4.启动frp(终止frp把start改为stop即可):
sudo systemctl start frps
5.查看frp是否启动:
ps aux | grep frps
显示的内容如下则表示启动成功:
