使用 systemd 配置 frp 服务

该文章根据 CC-BY-4.0 协议发表,转载请遵循该协议。
本文地址:https://fenying.net/post/2023/11/12/systemd-service-for-frp/

此前都使用 Docker 来运行 frp 客户端,现在改成直接在主机上运行 frp 客户端,使用 systemd 来管理 frp 服务。

设定
  • 这是 frp 客户端(frpc)的配置,但服务端(frps)也适用,只需替换命令,并使用 frps 的配置文件即可。
  • frpc 命令的路径为 /usr/bin/frpc
  • 配置文件存放在 /etc/frp.d 目录下。

只需要配置一个使用 systemd 管理的 frp 服务,在网络启动时自动启动 frp 服务即可,参考配置如下:

 1[Unit]
 2Description=FRP Client
 3Documentation=https://github.com/fatedier/frp
 4After=network.target network-online.target
 5[Service]
 6Type=simple
 7ExecStart=/usr/bin/frpc -c /etc/frp.d/frpc.ini
 8Restart=always
 9[Install]
10WantedBy=multi-user.target

将这个 systemd 服务配置写到 /usr/lib/systemd/system/frpc.service 文件里。

随后将你的 frpc 配置文件写到 /etc/frp.d/frpc.ini

然后执行如下命令,配置开机启动,并立即启动。

1sudo systemctl daemon-reload
2sudo systemctl enable --now frpc

最后,执行如下命令确认是否启动成功。

1sudo systemctl status frpc

如无意外,应该可以看到类似如下的输出:

 1 frpc.service - FRP Client
 2     Loaded: loaded (/usr/lib/systemd/system/frpc.service; enabled; preset: disabled)
 3     Active: active (running) since Sun 2023-11-12 13:51:33 CST; 15min ago
 4       Docs: https://github.com/fatedier/frp
 5   Main PID: 2063 (frpc)
 6      Tasks: 8 (limit: 19175)
 7     Memory: 21.4M
 8        CPU: 206ms
 9     CGroup: /system.slice/frpc.service
10             └─2063 /usr/bin/frpc -c /etc/frp.d/frpc.ini
注意

如果需要对接多个远端 frps 服务器,也可以配置多个服务,将上面的配置复制多份,命名为不同的服务名和文件名即可。

comments powered by Disqus