sing-box 配置格式、导入与版本兼容检查
最后更新:2026-10-03
直接答案
sing-box 采用严格的 JSON 格式 作为底层配置文件。在客户端中导入时,必须使用类型为 Remote (远程 URL) 的专用 sing-box 订阅链接。其最核心的痛点在于向下兼容性极差:如果机场下发的 JSON 配置是基于 sing-box v1.7 的语法,而你的客户端已经升级到了 v1.9(引入了路由规则的破坏性变更),将直接导致 Unrecognized field 或解析失败,完全无法启动内核。
适用条件
- 运行环境:使用原版 sing-box(iOS/Android/PC)或任何基于其内核的第三方套壳 GUI(如 Hiddify, NekoBox)。
- 核对版本:本文基于 sing-box v1.9.0 核心逻辑编写(2026年10月核对)。
严格操作步骤与配置验证
1. 订阅链接的格式要求
不能直接把 Clash 或 V2Ray 的链接喂给 sing-box,它无法原生解析 YAML 或 Base64 节点列表。
- 必须在机场后台寻找写着
一键导入 sing-box或复制 sing-box 订阅的选项。 - 如果机场不提供,你需要借助第三方订阅转换器(如 肥羊/Subconverter),目标客户端选择
sing-box,生成一个以https://...开头的最终链接。
2. 标准导入流程
- 打开 sing-box 客户端,进入 Profiles (配置) 面板。
- 点击 New Profile (新建配置)。
- Type (类型) 必须点击下拉菜单,从
Local (本地)切换为Remote (远程)。 - Name (名称):填入任意字符,如
MyAirport。 - URL (链接):粘贴你获取的专属订阅链接。
- Auto Update (自动更新):填入
1440(即 24 小时自动拉取一次)。 - 点击 Create (创建) 进行保存。
- 返回列表,长按或点击刚刚创建的配置右侧菜单,选择 Update (更新),等待几秒直到提示下载成功。
3. 启动 TUN 隧道与节点选择
- 回到 Dashboard (首页),勾选顶部的 Enabled (启用) 开关。如果是首次使用,系统会请求创建 VPN/TUN 隧道的权限,点击允许。
- 进入 Groups (策略组) 面板。此时会展示名为
Proxy或其他由机场定义的路由组。 - 点击右上角的测速按钮,选中延迟为绿色的节点。
常见报错与内核级排障指南
症状 1:Update 失败,提示 Invalid configuration 或 Unrecognized field 'outbounds'
- Check Method (排查方法):查看日志中具体的报错行数。这种报错 99% 是因为 JSON 字段结构在不同核心版本之间发生了破坏性更新(Breaking Changes)。例如 v1.8 移除并重构了 DNS rules 字段。
- Decision (判定标准):如果你的客户端在 App Store / Play 商店自动更新到了最新版,而你的机场后台或转换器仍在输出旧版语法的 JSON,就会触发此报错。
- Next Step (下一步处理):
- 临时方案:去 GitHub Releases 下载与机场兼容的旧版 sing-box 客户端。
- 彻底解决:更换一个已经支持最新版本 sing-box 语法的订阅转换器重新生成 URL。
症状 2:启动后没有网,Dashboard 流量全为 0
- Check Method (排查方法):进入 Groups,确认是否选中了节点。检查 Dashboard 中的 Route (路由) 设置,是否不小心开启了全局直连 (Direct)。如果是配置本身下载失败,可参考导入失败排障方案。
- Next Step (下一步处理):确认节点连通性(详见如何看懂连通性测速)。如果连通性没问题,尝试关闭再重新开启
Enabled开关,以重建底层网卡接口。也可以参考通用的客户端无法联网排查流程。
技术延伸提示
由于 sing-box 的 JSON 配置文件是完全暴露给用户的结构化数据,进阶用户可以直接复制远程下载下来的配置内容,新建一个 Local 类型的配置,并手动插入自己的广告拦截 DNS 或分流规则(深入了解请看订阅与分流基础),从而实现更深度的自定义。但这要求你对 sing-box 的官方路由模型非常熟悉。
接下来可以阅读
常见问题
sing-box 和 Clash 哪个更好用?
Clash 拥有最成熟的生态和丰富的图形化客户端,适合绝大多数用户。sing-box 是较新的内核,原生支持更多新协议(如 Hysteria2, VLESS Reality),且在移动端非常省电,但其配置语法的门槛较高。
为什么导入后列表里一个节点都没有?
通常是因为你直接粘贴了 Clash 的 YAML 订阅链接,而 sing-box 无法解析。你必须使用订阅转换器将其转换为 sing-box 专属的 JSON 格式链接。
更新节点提示 "Network Error" 怎么办?
这表示你的本地网络无法访问订阅所在的服务器。建议连接备用节点或打开蜂窝数据后再尝试更新。