【20230921】sing-box命令行程序开机自启动配置全攻略(Windows、Linux)

【20230921】sing-box命令行程序开机自启动配置全攻略(Windows、Linux) 1. 为什么需要配置sing-box开机自启动每次开机都要手动打开终端运行sing-box是不是很麻烦作为一个长期使用sing-box的老用户我完全理解这种重复操作的痛苦。想象一下你正在赶一个紧急项目开机后还要花时间手动启动各种服务这种体验实在太糟糕了。sing-box作为一款命令行工具默认情况下确实不会自动随系统启动。但它的核心功能往往需要持续运行比如网络代理、数据同步等服务。我见过不少用户因为忘记启动sing-box而导致工作流程中断这种情况完全可以避免。其实配置开机自启动并不复杂Windows和Linux系统都提供了完善的机制。在Windows下我们可以利用启动文件夹或注册表Linux则可以通过systemd或init.d来实现。我将在后续章节详细介绍这些方法保证让你一劳永逸地解决这个问题。2. Windows系统配置指南2.1 准备工作定位关键文件路径在开始配置前我们需要先确认几个关键路径。根据我的经验这是最容易出错的地方。首先找到你的sing-box安装位置通常在C:\Users\你的用户名\.local\bin\sing-box.exe。注意这里的你的用户名要替换为你实际的Windows登录账号。配置文件一般存放在C:\Users\你的用户名\.local\share\sing-box目录下。我建议你先手动运行一次sing-box确认这些路径是否正确。记得把这些路径记下来后面配置脚本时会用到。2.2 创建运行脚本现在我们来创建一个CMD脚本。在sing-box.exe所在目录右键新建文本文档重命名为run-sing-box.cmd。用记事本打开输入以下内容C:\Users\你的用户名\.local\bin\sing-box.exe run -D C:\Users\你的用户名\.local\share\sing-box保存后双击测试是否能正常运行sing-box。如果出现闪退可能是路径错误需要仔细检查。2.3 使用VBS实现静默运行CMD窗口每次启动都会弹出很不美观。我们可以用VBS脚本解决这个问题。在相同目录新建run-sing-box.vbs文件内容如下Set ws CreateObject(Wscript.Shell) ws.run cmd /c C:\Users\你的用户名\.local\bin\run-sing-box.cmd,vbhide这个脚本会隐藏CMD窗口运行我们的命令。同样记得测试一下效果。2.4 设置开机启动最后一步是将脚本加入启动项。按下WinR输入shell:startup回车这会打开启动文件夹。把run-sing-box.vbs的快捷方式复制到这里就大功告成了。重启电脑测试是否生效。3. Linux系统配置方案3.1 systemd服务配置现代Linux发行版大多使用systemd。我们可以创建一个服务单元文件。打开终端输入sudo nano /etc/systemd/system/sing-box.service然后输入以下内容[Unit] Descriptionsing-box service Afternetwork.target [Service] Typesimple User你的用户名 ExecStart/home/你的用户名/.local/bin/sing-box run -D /home/你的用户名/.local/share/sing-box Restartalways [Install] WantedBymulti-user.target记得替换路径中的用户名。保存后执行sudo systemctl daemon-reload sudo systemctl enable sing-box sudo systemctl start sing-box3.2 检查服务状态配置完成后使用以下命令检查服务状态systemctl status sing-box如果看到active (running)字样说明配置成功。我建议你也测试下重启后服务是否能自动启动。4. 常见问题排查4.1 Windows下的权限问题有时脚本会因为权限问题无法执行。右键脚本文件→属性→安全确保你的用户有执行权限。如果遇到UAC弹窗可以考虑以管理员身份运行脚本但不推荐长期这样做。4.2 Linux下的路径错误Linux对路径大小写敏感。确保所有路径都完全匹配。可以使用which sing-box命令确认可执行文件位置find / -name sing-box搜索配置文件位置。4.3 日志查看技巧当sing-box无法启动时查看日志是最快定位问题的方法。Windows下可以在脚本末尾添加pause命令暂停窗口查看错误Linux则使用journalctl -u sing-box -b查看启动日志。5. 进阶配置建议5.1 环境变量配置为了避免硬编码路径可以考虑设置环境变量。Windows下在系统属性→高级→环境变量中添加Linux则在~/.bashrc或~/.profile中export。这样脚本会更通用。5.2 多配置文件管理如果你需要根据不同场景使用不同配置可以修改脚本添加-c参数指定配置文件。例如sing-box run -c /path/to/config.json这样就能灵活切换配置了。5.3 资源限制设置对于长期运行的服务建议在Linux下设置资源限制。在service文件中添加LimitNOFILE65535 LimitNPROC4096这可以防止资源耗尽导致服务崩溃。