Mice-Tailor-Infra 进化论(三):从二进制到基础设施 —— IaC 视角下的 Sing-box 治理

引子:告别“纯手工”时代

如果你也是一名 Android 玩机爱好者,你一定经历过这样的痛苦:

  1. 机场订阅更新了,得手动去复制链接、更新配置、重启服务。
  2. 想要微调一个分流规则,得在手机那个局促的编辑器里改几十行 JSON。
  3. 换了台手机,所有的分流逻辑又要重写一遍。

在 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 时,后台发生了一场微型的配置管理:

  1. 穿透同步:脚本利用时间戳后缀(Cache Buster),强制穿透 EdgeOne CDN 的缓存,拉取云端最尖端的配置模板。
  2. 动态渲染:模块内置了一个精简的 envsubst 二进制。它读取本地的 .env 变量,将其注入到云端模板中。
  3. 热重载:渲染出的正式 config.json 被立刻加载,Sing-box 随之执行平滑重启。

这种方式的好处显而易见:你只需要修改 GitHub 上的一个文件,你名下所有的 Android 设备都会在下一次同步时,自动完成逻辑升级,而不需要你动一下手指。


3. sbc:一个充满确定性的指挥官

所有的操作都被封装在 sbc (Sing-box Controller) 这个命令中。它的设计参考了 Linux 服务管理的最佳实践:

  • VoLTE 保护:在停止服务时,脚本会执行严格的“Native Cleanup”,确保移动网络的中断被降到最低,防止 VoLTE 掉线。
  • 鲁棒校验:在覆盖配置前,脚本会通过 grep 校验模板内容的完整性,防止因为拉取到错误页面(如 404)而导致服务瘫痪。

4. 进化之路:从“玩机”到“运维”

到此为止,Mice-Tailor-Infra 的三部曲已经合拢:

  1. MiceTimer 解决了“什么时候做”。
  2. FCM-Hosts-Next 解决了“做什么(数据质量)”。
  3. Sing-box-KSU-Module 解决了“怎么高效地做(部署架构)”。

现在的我们,不再是在“玩手机”,而是在管理一套微型的数据中心。所有的配置变更都有 Git 记录可追溯,所有的任务执行都有高可靠的守护进程保障。

当基础设施变得足够透明、稳定且可编程时,我们才能腾出精力去思考更重要的事情。


项目链接

Stay hungry, stay coding.