在Linux上部署Frps服务端与开机启动与进程守护的配置

VFX大学 VFX Pipeline | 数字创意工作流 Linux上部署Frps与Mac上Frpc的配置方案详细记录 在Linux上部署Frps服务端与开机启动与进程守护的配置

#127158

追光
参与者

在Linux上部署Frps服务端

需要的设备:一台具有公网ip的服务器、一台或者多台无公网的mac、Win电脑。这里是具有公网ip的linux服务器配置

1、下载适合当前版本的Frps。(可以从github下载frps对应的版本)比如我的系统是Centos7对应下载:frp_0.53.0_linux_amd64

# 前往 FRP 的官方 GitHub releases 页面下载适用于 Linux 的版本,例如 v0.37.1
wget https://github.com/fatedier/frp/releases/download/v0.37.1/frp_0.37.1_linux_amd64.tar.gz

# 解压下载的文件
tar -xvf frp_0.37.1_linux_amd64.tar.gz

# 进入解压后的目录
cd frp_0.37.1_linux_amd64

小提示:如果使用了Linux管理面板可以直接通过电脑下载文件,并上传到方便管理的目录即可。上方的操作做的也是这个操作,可跳过上方的操作,选择适合你自己的方法来进行下载、上传。

比如我将Frps与 Frps.toml文件拷贝到方的目录:/www/wwwroot/net/frps/

2. 配置 FRP 服务器
创建 FRP 配置文件 frps.atoml,用于配置 FRP 服务器。

nano frps.atoml

在编辑器中添加以下配置,根据需求进行修改:

bindPort = 1443
 #用于fprs和frp进行连接验证通讯的端口,可自行设定,需要在防火墙中开启此端口
# 如果指定了“oidc”,将使用 OIDC 设置颁发 OIDC(开放 ID 连接)令牌。默认情况下,此值为“令牌”。auth.method = “token”
auth.method = "token"
# 身份验证令牌 auth.token = “密码”
auth.token = "123456"
 
# 配置 Web 服务器以启用 frps 的仪表板。
webServer.addr = "0.0.0.0"
webServer.port = 16443
#用于fprs显示连接状态流量的端口,可自行设定,需要在防火墙中开启此端口
webServer.user = "admin"
webServer.password = "123456"

3. 启动 FRPS 服务器。(这里我常用的三种启动方式都写在下方,每行一个都有解释)

#1、进入安装目录后 带terminal实时输出启动,测试配置时非常有用

cd /www/wwwroot/net/frps
./frps -c ./frps.toml

# 2、进入目录后执行、不带terminal实时输出启动,可关闭terminao
cd /www/wwwroot/net/frps
./frps -c ./frps.toml>/dev/null 2>&1 &

#3、将目录位置写入命令,直接启动
/www/wwwroot/net/frps/./frps -c /www/wwwroot/net/frps/frps.toml

启动FRP服务器后,它就开始监听来自客户端的连接。

4、配置开机自动启动,这样每次开机frps就会自动启动

[Unit]
# 服务名称,可自定义
#/etc/systemd/system
Description = frp server
After = network.target syslog.target
Wants = network.target
 
[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /www/wwwroot/net/frps/./frps -c /www/wwwroot/net/frps/frps.toml
 
[Install]
WantedBy = multi-user.target

5、这一步一般情况下可以不做,但如果要让进程始终处于运行状态,可以安装Supervisor进行配置,也可以使用宝塔面板的进程管理器,配置文件如下:

[program:FRPS]
# 启动frps的命令
command=/www/wwwroot/net/frps/./frps -c /www/wwwroot/net/frps/frps.toml
# 启动frps的的frps的安装路径
directory=/www/wwwroot/net/frps/
autorestart=true
startsecs=3
startretries=3
stdout_logfile=/www/server/panel/plugin/supervisor/log/FRPS.out.log
stderr_logfile=/www/server/panel/plugin/supervisor/log/FRPS.err.log
stdout_logfile_maxbytes=2MB
stderr_logfile_maxbytes=2MB
user=root
priority=999
numprocs=1
process_name=%(program_name)s_%(process_num)02d