开机自启服务配置重启自动恢复中转

为什么重启后中转服务就停了?

很多新手在折腾中转服务(比如用 frp 做内网穿透、用 socat 做端口转发、或者用 nginx 反代)时,都会遇到一个尴尬情况:服务器一重启,中转服务就停了,每次都要手动 ssh 上去启动,非常麻烦。
究其原因,就是没有把中转服务注册成系统服务并配置开机自启。
本文从零开始,教你用最常用的 systemd 方式配置开机自启,确保重启后中转功能自动恢复。

准备条件

  • 一台 Linux 服务器(本文以 CentOS 7 / Ubuntu 20.04 为例,命令通用)
  • 已经安装并调试好的中转服务(假设可执行文件路径 /usr/local/bin/your-service,配置文件 /etc/your-service.conf)
  • 拥有 root 权限或 sudo 权限

如果你的中转服务是直接命令行运行的,比如 ./frps -c ./frps.toml,那么下面步骤完全适用。

一步步配置 systemd 服务实现自动启动

# 使用 vim 创建服务单元文件
sudo vim /etc/systemd/system/your-service.service

粘贴以下内容,请根据自己的服务修改 ExecStart 命令和路径:

[Unit]
Description=Your Transit Service (中转服务)
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
ExecStart=/usr/local/bin/your-service -c /etc/your-service.conf
Restart=always
RestartSec=5
User=root
Group=root

[Install]
WantedBy=multi-user.target

关键字段说明:

  • After 和 Wants:确保网络完全就绪后再启动,避免因网络未连通导致服务启动失败。
  • Restart=always:即使服务异常退出,也会自动重启,进一步提升稳定性。
  • RestartSec:重启前等待 5 秒,避免频繁重启。

保存并退出后执行:

# 重新加载 systemd 配置
sudo systemctl daemon-reload

# 开启开机自启
sudo systemctl enable your-service

# 立即启动服务
sudo systemctl start your-service

# 查看状态
sudo systemctl status your-service

如果状态显示 active (running) 且没有红色错误,说明服务已正常运行且已加入开机自启。

新手最容易踩的坑

  • 路径写错:ExecStart 必须使用绝对路径,可以用 which 你的服务名称 查看完整路径。
  • 配置文件权限不足:如果配置文件只允许 root 读取,但服务用普通用户运行,会导致启动失败。建议保持一致。
  • 忽略网络依赖:如果你的中转服务需要联网(例如 frp 连接服务器),务必加上 After=network-online.target,否则启动时网络未就绪,服务直接报错退出。
  • 忘记 daemon-reload:每次修改 .service 文件后,必须执行 sudo systemctl daemon-reload,否则 systemd 使用的还是旧配置。
  • 旧系统无 systemd:如果你的系统是 CentOS 6 或更早,没有 systemd,可以使用 rc.local:在 /etc/rc.local 中添加启动命令,并赋予执行权限 chmod +x /etc/rc.d/rc.local。

如何确认服务已正常恢复

完成配置后,执行一次完整重启验证:

sudo reboot

等待服务器重启完毕,ssh 登录后直接查看服务状态:

sudo systemctl status your-service

如果显示 active (running),并且 enabled 字样出现在服务描述的末尾,说明开机自启成功。
你也可以用 ps aux | grep your-service 确认进程存在。

更进一步,测试外部连接是否正常(例如 frp 能否成功连接、端口是否可访问)。
如果一切正常,那么你的中转服务已经实现“重启自动恢复”。

高频问题解答

Q:我的服务没有 systemd 单元文件,可以直接把启动命令扔到 /etc/rc.local 吗?
A:可以,但不推荐。rc.local 的启动顺序靠后,且缺少进程守护和依赖管理。优先使用 systemd。只有老旧系统才考虑 rc.local。

Q:服务总是重启失败,怎么排查?
A:用 journalctl -u your-service -n 50 查看最近 50 行日志,定位具体错误。常见原因:配置文件格式错误、端口被占用、缺少权限。

Q:配置了开机自启,但重启后还是没启动?
A:检查 systemctl 的 enable 状态:sudo systemctl is-enabled your-service,输出应为 enabled。如果不是,说明你没成功 enable;如果是 enabled 但仍不启动,检查日志看服务是否在启动时报错退出。

总结

通过上述步骤,你已经学会了用 systemd 为中转服务配置开机自启,彻底告别重启后手动恢复的烦恼。
关键就是两步:写一个正确的 .service 文件,然后 enable 并 start。
遇到问题时优先查看 journal 日志和状态输出,绝大多数错误都能快速定位。
如果你正在处理开机自启服务配置重启自动恢复中转的问题,建议先按本文步骤完整执行,再根据自己的环境做微调;
遇到异常时优先回看避坑和高频问题部分。

分享到:
上一篇
压缩解压批量处理大模型与网站备份:压缩解压与批量处理
下一篇
环境变量永久设置存放模型路径的方法(零基础也能操作)
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意