sing-box服务自启动:systemd与OpenRC配置教程
概述
sing-box作为通用代理平台(The universal proxy platform),支持多种安装方式和服务管理机制。本文将详细介绍如何在Linux系统中通过systemd和OpenRC实现sing-box服务的自启动配置,确保服务在系统启动时自动运行并保持稳定状态。
系统要求与安装准备
在配置服务自启动前,请确保已通过官方推荐的包管理器完成sing-box安装。官方文档提供了多种安装方式,包括Debian/APT、Redhat/DNF、Arch Linux AUR等主流包管理系统支持。
官方安装指南:docs/installation/package-manager.md
systemd服务配置(主流Linux发行版)
自动安装的服务文件
通过包管理器安装的sing-box通常会自动创建systemd服务文件。默认服务文件通常位于/etc/systemd/system/或/usr/lib/systemd/system/目录下,文件名为sing-box.service。
服务管理命令
systemd提供了完整的服务生命周期管理功能,常用命令如下:
| 操作 | 命令 |
|---|---|
| 启用自启动 | sudo systemctl enable sing-box |
| 禁用自启动 | sudo systemctl disable sing-box |
| 启动服务 | sudo systemctl start sing-box |
| 停止服务 | sudo systemctl stop sing-box |
| 重启服务 | sudo systemctl restart sing-box |
| 查看状态 | sudo systemctl status sing-box |
| 查看日志 | sudo journalctl -u sing-box --output cat -e |
| 实时日志 | sudo journalctl -u sing-box --output cat -f |
自定义服务文件
如果需要自定义服务配置,可以创建或修改服务文件。以下是一个典型的systemd服务文件示例:
[Unit]
Description=sing-box universal proxy platform
After=network.target nss-lookup.target
[Service]
User=root
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE
AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE
NoNewPrivileges=true
ExecStart=/usr/bin/sing-box run -c /etc/sing-box/config.json
Restart=on-failure
RestartSec=3s
[Install]
WantedBy=multi-user.target
将上述内容保存为/etc/systemd/system/sing-box.service,然后执行以下命令使配置生效:
sudo systemctl daemon-reload
sudo systemctl enable --now sing-box
OpenRC服务配置(Gentoo/Alpine等发行版)
手动创建OpenRC服务脚本
对于使用OpenRC的系统,需要手动创建服务脚本。在/etc/init.d/目录下创建sing-box文件:
#!/sbin/openrc-run
description="sing-box universal proxy platform"
command="/usr/bin/sing-box"
command_args="run -c /etc/sing-box/config.json"
pidfile="/run/${RC_SVCNAME}.pid"
command_background="yes"
user="root"
depend() {
need net
after firewall
}
服务管理命令
设置权限并启用服务:
sudo chmod +x /etc/init.d/sing-box
sudo rc-update add sing-box default
sudo rc-service sing-box start
常用OpenRC服务管理命令:
| 操作 | 命令 |
|---|---|
| 添加到默认运行级 | sudo rc-update add sing-box default |
| 从运行级移除 | sudo rc-update del sing-box default |
| 启动服务 | sudo rc-service sing-box start |
| 停止服务 | sudo rc-service sing-box stop |
| 重启服务 | sudo rc-service sing-box restart |
| 查看状态 | sudo rc-service sing-box status |
配置验证与故障排除
验证服务状态
服务启动后,可以通过以下方式验证运行状态:
# systemd系统
sudo systemctl status sing-box
# OpenRC系统
sudo rc-service sing-box status
日志查看
查看服务运行日志以排查问题:
# systemd系统
sudo journalctl -u sing-box -f
# OpenRC系统(假设日志输出到/var/log/sing-box.log)
tail -f /var/log/sing-box.log
配置文件检查
确保配置文件格式正确:
sing-box check -c /etc/sing-box/config.json
总结
本文详细介绍了在Linux系统中通过systemd和OpenRC配置sing-box服务自启动的方法。通过包管理器安装的sing-box通常已包含systemd服务文件,可直接使用systemctl命令管理;对于OpenRC系统,则需要手动创建服务脚本。无论使用哪种方式,都应确保配置文件正确并验证服务状态,以保证sing-box服务能够稳定运行。
官方文档:docs/installation/package-manager.md 配置示例:release/config/
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



