Linux配置 frpc 服务

安装

Linux 自动安装脚本

bash <(curl -s https://getfrp.sh)

按提示输入访问密钥节点ID

编写配置文件

Systemd 的 Unit 配置文件 通常位于这些目录中:

  • /lib/systemd/system
  • /etc/systemd/system

本教程将选用第一个目录来放置 frpc 的 Unit 配置文件,并且 frpc 启用后报错退出时每分钟会自动重启一次

执行下面的命令:

vi /lib/systemd/system/frpc@.service

然后复制并粘贴下面提供的服务文件内容,请注意 不要 多复制或少复制任何东西

[Unit]
Description=SakuraFrp Service
After=network.target

[Service]
Type=idle
User=nobody
Restart=on-failure
RestartSec=60s
ExecStart=/usr/local/bin/frpc -f %i

[Install]
WantedBy=multi-user.target

执行下面的命令重载 Systemd,这样服务就配置完成了

systemctl daemon-reload

请记住后续操作中用到的 Unit 名称frpc@<启动参数>,例如 frpc@wdnmdtoken666666:12345

下面本教程将介绍一些 Systemd 的基本操作

启动/停止隧道

启动/停止隧道非常简单,使用下面的命令即可,start 是启动,stop 是停止

systemctl <start|stop> <Unit名称>

如果您想开启多条不同隧道,只要更换 Unit 名称 中的启动参数并多次执行对应的指令即可

举个例子,开启访问密钥为 wdnmdtoken666666 的用户所拥有的 ID 为 12345 的隧道:

systemctl start frpc@wdnmdtoken666666:12345

查看隧道状态

您可以通过下面的命令查看服务状态

systemctl status <Unit名称>

举个例子,要查看上面开启的隧道状态可以使用

systemctl status frpc@wdnmdtoken666666:12345

绝对不要 开启重复的隧道,这会造成出现各种不可预计的 Bug
执行多次 systemctl start安全
配置好 Systemd 后,不要 再用 frpc -f <启动参数> 的形式开启隧道

如果您忘记了之前开启过哪些隧道,使用下面的命令可以列出当前运行中的隧道

systemctl list-units frpc@*

下图中的信息表示我们开启了访问密钥为 wdnmdtoken666666 的用户所拥有的两条 ID 分别为 1234567890 的隧道

img

查看隧道日志

您可以通过下面的命令查看隧道日志:

journalctl -u <Unit名称>

举个例子,要查看上面开启的隧道状态可以使用

journalctl -u frpc@wdnmdtoken666666:12345

如果当前窗口无法显示所有日志,可以用 方向键滚动,输入大写的 G 跳转动到日志底部,输入 q 退出日志查看。更多使用方法请参阅 man journalctl

配置开机自启

装好服务后,实现开机自启非常简单,回顾一下前置知识

  • 我们只要 启用 服务就可以实现开机自启
  • 如果不想开机自启了,禁用 服务即可

使用下面的命令启用/禁用服务,enable 是启用,disable 是禁用,操作完成后再用 status 检查一下状态

systemctl <enable|disable> <Unit名称>
systemctl status <Unit名称>

如果一切正常,您会看到我图中的两个红色标注的内容

没看到第一个创建符号链接的提示也是正常的,只要下面的状态显示为 enabled 就行

img

如果您忘记了之前设置过的自启隧道,可以使用下面的命令列出

和上面是类似的,只是多了个 --all 确保停止了的服务也能被列出

systemctl list-units --all frpc@*

Q.E.D.


狸猫控股集团大中华区秘书长