Mice-Tailor-Infra 进化论(三):从二进制到基础设施 —— IaC 视角下的 Sing-box 治理
引子:告别“纯手工”时代
如果你也是一名 Android 玩机爱好者,你一定经历过这样的痛苦:
- 机场订阅更新了,得手动去复制链接、更新配置、重启服务。
- 想要微调一个分流规则,得在手机那个局促的编辑器里改几十行 JSON。
- 换了台手机,所有的分流逻辑又要重写一遍。
在 Mice-Tailor-Infra 的世界里,这种低效的操作是不被允许的。既然我们已经有了准时的调度(MiceTimer)和高质量的数据(FCM-Hosts-Next),那么最后一步就是:将 Sing-box 运行环境彻底基础设施化。
今天我们要聊的是:如何用 Infrastructure as Code (IaC) 的思想,重构 Android 端的网络治理。
1. “前店后厂”:逻辑与凭证的彻底解耦
在传统的 Sing-box 模块里,二进制文件、配置文件、分流规则通常是被一股脑塞进一个 Zip 包里的。一旦规则要改,你就得发个新版模块,这太“重”了。
我们采用了一套“解耦”架构:
- 云端模板(Infrastructure):在 GitHub 上维护一套标准化的
config.template.json。这里定义了复杂的分流逻辑、DNS 策略和入站规则。它不包含任何敏感信息,可以被 CDN 全球加速。 - 本地凭证(Environment):在手机的
/data/adb/sing-box-workspace目录下,只保留一个.env文件。这里存储着你的节点 UUID、服务器地址等私密数据。
这就是 “前店后厂”:GitHub 负责生产逻辑,本地环境负责提供动力。
2. 渲染引擎:将 envsubst 搬上手机
当你在终端输入 sbc update 时,后台发生了一场微型的配置管理:
- 穿透同步:脚本利用时间戳后缀(Cache Buster),强制穿透 EdgeOne CDN 的缓存,拉取云端最尖端的配置模板。
- 动态渲染:模块内置了一个精简的
envsubst二进制。它读取本地的.env变量,将其注入到云端模板中。 - 热重载:渲染出的正式
config.json被立刻加载,Sing-box 随之执行平滑重启。
这种方式的好处显而易见:你只需要修改 GitHub 上的一个文件,你名下所有的 Android 设备都会在下一次同步时,自动完成逻辑升级,而不需要你动一下手指。
3. sbc:一个充满确定性的指挥官
所有的操作都被封装在 sbc (Sing-box Controller) 这个命令中。它的设计参考了 Linux 服务管理的最佳实践:
- VoLTE 保护:在停止服务时,脚本会执行严格的“Native Cleanup”,确保移动网络的中断被降到最低,防止 VoLTE 掉线。
- 鲁棒校验:在覆盖配置前,脚本会通过
grep校验模板内容的完整性,防止因为拉取到错误页面(如 404)而导致服务瘫痪。
4. 进化之路:从“玩机”到“运维”
到此为止,Mice-Tailor-Infra 的三部曲已经合拢:
- MiceTimer 解决了“什么时候做”。
- FCM-Hosts-Next 解决了“做什么(数据质量)”。
- Sing-box-KSU-Module 解决了“怎么高效地做(部署架构)”。
现在的我们,不再是在“玩手机”,而是在管理一套微型的数据中心。所有的配置变更都有 Git 记录可追溯,所有的任务执行都有高可靠的守护进程保障。
当基础设施变得足够透明、稳定且可编程时,我们才能腾出精力去思考更重要的事情。
项目链接
- Sing-box 核心环境: GitHub - Mice-Tailor-Infra/sing-box-ksu-module
- 配置模板中心: GitHub - Mice-Tailor-Infra/sing-box-config-templates
- Mice-Tailor-Infra 门户: miceworld.top
Stay hungry, stay coding.