在 Ubuntu 22.04 上设置 FRP (Frps/Frpc) 开机自启动可以通过
systemd 实现,以下是详细步骤:方法一:使用 systemd 服务(推荐)
1. 创建 systemd 服务文件
shell
2. 写入服务配置
服务端 (frps) 示例:
plain
客户端 (frpc) 示例:
plain
3. 设置权限并启用服务
shell
4. 验证状态
shell
方法二:使用 crontab(备用方案)
如果无法使用 systemd,可通过 crontab 实现:
shell
添加以下行(以 frpc 为例):
shell
关键注意事项
- 路径修正:
- 确保
ExecStart中的路径指向真实的 FRP 二进制文件和配置文件 - 可通过
which frps或find / -name frps查找路径
- 权限问题:
- 如果使用非标准端口(<1024),需要修改
User=root - 建议使用普通用户时绑定高位端口(如 8080+)
- 环境变量:
如果 FRP 需要特定环境变量,在
[Service]部分添加:
plain
- 多实例配置:
如需运行多个 FRP 实例,创建多个 service 文件如
frps2.service并指定不同配置
故障排查命令
shell
卸载自启动
shell
通过以上配置,FRP 将在系统启动时自动运行,并在崩溃时自动重启(得益于
Restart=on-failure)。建议优先使用 systemd 方案,它能提供更好的进程管理和日志集成。中间遇到了问题:
启动报错:frps.service: Changing to the requested working directory failed: Permission denied,我设置的工作目录是/home/win10/code/auto-login/frp
修改
frps.service,明确指定运行用户为目录所有者 win10:仍然报错
仍然报错:frps.service: Failed to determine user credentials: No such process
4月 30 10:04:48 win10-KVM systemd[2441815]: frps.service: Failed at step USER spawning
最后的配置