sing-box服务自启动:systemd与OpenRC配置教程

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),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值