sing-box订阅链接怎么转换?按格式选择方法并完成导入
简答:最稳妥的顺序是:先确认服务提供方是否有 sing-box 专用链接;有就直接作为远程配置导入,没有再把 Clash YAML、Base64 或 URI 节点转换为 sing-box JSON。转换后不要只看“生成成功”,还要检查 JSON、节点数量、协议字段和客户端日志。
定义:sing-box订阅链接转换,是把原本面向 Clash、V2Ray 或其他客户端的订阅内容,转换为 sing-box 能读取的远程配置、JSON 配置文件或 outbounds 节点列表。
先判断:你的链接能不能直接放进 sing-box
sing-box 官方配置文件使用 JSON 结构,配置通常包含 dns、inbounds、outbounds、route 等字段,不能把任意 Clash YAML 或 Base64 文本直接当成完整 sing-box 配置使用。可先查看官方配置文档确认目标文件是否符合 JSON 配置结构。
| 你手里的内容 | 是否建议直接导入 | 下一步 |
|---|---|---|
| 服务提供方明确标注 sing-box 的远程链接 | 可以先尝试 | 作为 Remote Profile 添加,并测试更新 |
| Clash 或 Mihomo YAML 链接 | 通常不要直接当 sing-box JSON | 转换为 sing-box 配置后再导入 |
| V2Ray、Base64 或多条 URI 链接 | 通常不能直接作为完整配置 | 先解析节点,再生成 sing-box JSON |
| 单条 ss、vmess、vless、trojan 等节点 | 不能当订阅使用 | 转换为一个或多个 outbound,并补齐路由或 DNS |
| 已经是 JSON 且含有 outbounds | 可以先校验 | 用客户端导入,或用 sing-box check 检查 |
判断重点不是链接后缀,而是访问后返回的内容。若打开后看到 YAML、Base64、节点 URI 或网页提示,就不能仅凭“这是订阅链接”判断它兼容 sing-box。
三步完成转换:先直连,失败后再转换
第1步:向服务提供方索取 sing-box 专用链接
- 登录你已购买或正在使用的订阅服务后台。
- 在客户端列表中查找 sing-box、SFA、SFI、SFM 或 JSON 配置选项。
- 优先复制明确写明 sing-box 的链接,不要把 Clash、Surge 或 V2Ray 链接名称混用。
- 在客户端中添加远程配置。官方图形客户端将远程配置定义为“以 URL 作为更新来源的配置”,并支持自动更新;具体菜单名称以当前客户端界面为准。参考sing-box 图形客户端通用说明。
第2步:没有专用链接时,选择转换方式
- 在线转换:操作最少,但原始订阅通常包含访问凭据或 token。不要把长期有效的主订阅直接提交给不明网站;如必须测试,先使用可撤销、可重置或期限较短的链接。
- 自建或本地转换:更适合长期使用和敏感订阅。转换工具需要能识别你的输入格式,并输出完整 sing-box JSON,而不只是节点列表。
- 订阅管理工具:适合需要多端生成不同格式的场景,但应确认它保存原始链接的位置、更新方式和撤销方法。
无论使用哪种方式,都要区分三个结果:远程订阅链接、完整 JSON 配置文件、仅包含 outbounds 的节点列表。只有完整 JSON 才能直接作为完整 sing-box 配置;节点列表还需要补充 DNS、route、selector 或其他必要字段。
第3步:校验后再导入
- 如果得到的是文件,先用文本编辑器确认首字符通常为
{,并检查是否存在成对的双引号、逗号和闭合括号。 - 命令行环境可使用
sing-box check -c config.json检查配置;官方配置文档同时列出了sing-box format用于格式化 JSON。命令参数和当前版本行为以官方配置文档为准。 - 确认
outbounds中确实有节点,且节点引用的 tag 在 route 或 selector 中存在。 - 导入客户端后,先不开 TUN,只启用普通代理或客户端提供的基础运行模式,确认配置能启动,再处理分流和系统接管。
如何导入 SFA、SFI、SFM 和桌面客户端
官方客户端支持管理本地或远程 sing-box 配置。Android 端的 SFA 可以运行 sing-box 服务,并在需要时通过 Android 的 VpnService 提供 TUN;Apple 平台的 SFI、SFM、SFT 也支持管理本地或远程配置。Windows 和 Linux 的 sing-box Desktop 同样支持本地或远程配置文件。相关平台能力可分别查看Android 客户端说明、Apple 平台客户端说明和桌面客户端说明。
- 打开客户端的配置、Profiles 或 Profiles 管理页面,名称可能随客户端版本和系统不同。
- 选择添加远程配置、Remote Profile、从 URL 导入,或导入本地 JSON。
- 粘贴转换后的链接或选择 JSON 文件,填写易识别的配置名称。
- 保存后手动更新一次,查看更新时间、配置内容和节点数量。
- 选择一个节点或策略组启动,先验证浏览器或目标应用能否正常连接。
部分图形客户端支持通过 URL Scheme 导入远程配置,官方给出的格式是 sing-box://import-remote-profile?url=urlEncodedURL#urlEncodedName。实际使用时必须对 URL 和名称进行编码,并且客户端需要支持该 Scheme;不支持时改用客户端内置的添加配置入口。
转换后哪些内容可能丢失
订阅转换并不等于完整迁移。节点地址、端口、加密方式等基础字段可能被转换,但原订阅中的策略组、DNS、分流规则、远程 rule_set、脚本逻辑、客户端专用字段和平台权限不一定能原样保留。
- 只有节点,没有路由:配置可能可以启动,但所有流量的去向不符合预期,需要检查
route和默认出口。 - 策略组名称改变:路由仍引用旧 tag 时,可能出现启动报错或没有可选节点。
- 协议字段缺失:Reality、Hysteria2、TUIC、AnyTLS 等协议的参数依赖客户端和转换工具支持,不能只看节点名称判断转换完整。
- 规则集没有迁移:规则集 URL、格式、下载路径和缓存属于配置的一部分,不能假设会从原 Clash 配置自动继承。
- 平台字段不兼容:Android、Apple、Windows 对 TUN、应用分流和权限的支持不同,转换成功不代表所有平台行为一致。
如果你只想快速验证节点,可以先导入仅含 outbounds 的结果;如果要长期使用,应再补齐 DNS、route、策略组和更新机制,并以当前 sing-box 版本的官方文档核对字段。
订阅导入失败:按现象排查
| 现象 | 优先检查 | 处理方法 |
|---|---|---|
| 提示解析失败或 JSON 无效 | 返回内容不是 JSON、编码错误、逗号或括号错误 | 重新获取原链接,确认转换目标为完整 JSON,再用 sing-box check 校验 |
| 配置能导入但显示 0 个节点 | outbounds 是否存在,节点字段是否被过滤 | 查看转换结果原文;若只有空的 selector 或 direct,需要重新选择输入格式 |
| 配置可以启动但无法连接 | 节点协议参数、域名解析、TLS 或端口 | 先换另一个节点,暂时关闭复杂分流,查看客户端日志 |
| 远程配置更新失败 | 订阅已失效、token 被撤销、网络无法访问 URL | 在浏览器或命令行单独测试 URL,必要时删除旧配置后重新添加 |
| 开启 TUN 后系统网络异常 | 系统 VPN 权限、DNS、路由冲突 | 先关闭 TUN 并恢复系统代理,再退出客户端;确认恢复正常后再逐项开启 |
恢复顺序建议是:关闭 TUN 或系统代理开关 → 停止客户端服务 → 检查系统是否仍保留 VPN 或虚拟网卡 → 重新启动网络连接。不要一开始就重置系统网络;只有在确认是系统网络栈异常且已记录现有配置后,才考虑系统级修复。
安全与自动更新检查清单
- 把原始订阅链接视为凭据,不要发布到公开仓库、聊天群或截图中。
- 在线转换前确认是否保存原始 URL、转换结果和访问日志;无法确认时,不要提交长期有效订阅。
- 转换完成后检查节点数量是否明显减少、服务器域名是否异常、协议参数是否缺失。
- 设置自动更新时,记录更新 URL 和更新间隔;官方图形客户端的远程配置支持自动更新,但具体默认间隔和界面以当前客户端为准。
- 如果怀疑链接泄露,优先在原服务后台重置或撤销订阅,再删除客户端中的旧远程配置。
- 升级 sing-box 或更换客户端后重新检查配置字段。官方迁移文档会记录字段变化和弃用项,不能把旧配置能启动理解为新版本一定兼容。
本文为第三方使用指南,不代表任何订阅服务或客户端官方。不同转换工具对协议和规则的支持存在差异,无法核实的字段应以转换工具输出和 sing-box 当前文档为准。
补充更新:最短决策路径
- 有 sing-box 专用链接:直接添加远程配置。
- 只有 Clash YAML:转换成完整 JSON,再检查
outbounds、route和 DNS。 - 只有 Base64 或节点 URI:先解码或解析成节点,再生成完整配置,不能把原文直接改名为 JSON。
- 转换后能导入但不能连接:先换节点和检查日志,不要立刻修改 TUN、DNS 或 MTU。
- 需要长期自动更新:优先使用可撤销的远程配置链接,并定期检查 token 是否仍在有效控制范围内。
常见问题
sing-box 可以直接导入 Clash 订阅链接吗?
不能一概而论。若服务提供方返回的内容本身就是 sing-box JSON,可以直接作为远程配置;普通 Clash YAML 通常需要转换,不能只把链接粘贴到 sing-box 后期待自动兼容。
订阅转换后只有节点,没有分流规则,正常吗?
可能正常。许多转换结果只包含 outbounds,原订阅中的策略组、DNS、route 和远程规则集不一定会迁移。导入后应检查配置是否有 route、默认出口和实际可用的节点引用。
在线转换订阅会不会泄露?
存在风险,因为订阅链接可能包含可访问凭据或 token。无法确认工具是否保存原始链接时,不要提交长期有效主订阅;优先使用本地或自建转换,并在怀疑泄露后及时撤销或重置。
转换成 JSON 后,为什么 sing-box 仍然启动失败?
JSON 语法正确不代表 sing-box 配置完整。还要检查字段是否符合当前版本、节点协议参数是否齐全、route 引用的 tag 是否存在,以及 TUN、DNS 或平台专用字段是否兼容。
远程订阅能自动更新吗?
官方图形客户端支持远程配置和自动更新,但菜单名称、默认间隔和授权能力可能随客户端版本不同。添加后应手动更新一次,并确认客户端显示了新的更新时间和节点内容。