访问验证

sing-box 订阅转换怎么弄?按格式完成转换、校验与导入

更新于 2026-11-13 · liuheng2024.store

简答:先不要急着使用在线转换站:先查看订阅提供方是否已有 sing-box 专用链接或 JSON 配置;如果没有,再根据原始格式选择转换方式。转换后保存为 JSON,用 sing-box check -c config.json 校验,确认 outbounds 中确实有节点后再导入客户端。

定义:sing-box 订阅转换,是把 Clash YAML、Base64、节点 URI 或其他订阅数据整理成 sing-box 能读取的 JSON 配置或 sing-box 节点输出。

先试这一步:确认是否真的需要转换

很多订阅并不需要先转换。先登录你购买或获取订阅的服务后台,查看是否存在“sing-box”“SFA”“SFI”“SFM”“JSON”或“通用订阅”等选项。若已有 sing-box 专用链接,优先直接导入;只有在没有对应输出格式,或现有链接导入后格式不兼容时,才考虑转换。

本文是第三方使用指南,不代表任何品牌或服务商的官方页面。具体订阅类型、客户端支持范围和可用协议,以订阅提供方与当前 sing-box 客户端显示为准。

原始内容与处理方式速查
你手里的内容先怎么判断通常的下一步
sing-box 专用链接后台明确标注 sing-box 或对应客户端格式优先直接导入,不再转换
Clash YAML文本开头常见为 proxies、proxy-groups 或 rules 等字段选择 Clash/Mihomo 作为输入格式,再输出 sing-box
Base64 订阅打开后是一长串编码文本,不能直接读出节点字段按 Base64 或自动识别输入,再输出 sing-box
VLESS、VMess、Trojan 等 URI通常是一行一个链接,可能以对应协议名称开头选择 URI、节点列表或对应协议输入方式
完整 sing-box JSON可以看到 outbounds、inbounds、route 等 JSON 字段通常直接保存、校验和导入,不要重复转换
只有节点列表或 outbounds 片段可能只有节点数据,没有 DNS、route 或入站设置需要放进完整配置结构后再导入

sing-box 官方配置文档说明,配置文件使用 JSON,常见顶层字段包括 dns、inbounds、outbounds 和 route;因此“能生成节点列表”不等于已经得到完整的可运行配置。可参阅 sing-box 配置结构文档。

标准转换流程:从订阅链接到 sing-box JSON

  1. 复制订阅链接。

    从后台复制完整订阅地址,不要手动删掉参数。链接通常包含账户识别信息,把它当作密码处理,不要发到公开群组、工单截图或在线代码仓库。

  2. 优先选择官方或自建转换路径。

    如果后台有 sing-box 输出,直接使用。没有时,可以使用自己部署的订阅管理工具,或在可信环境中使用转换工具。以 Sub-Store 文档为例,其文档列出了 sing-box 作为输出目标,并区分“订阅输出”和“生成完整配置文件”两种用途;具体功能应以当前工具文档为准,不能把第三方工具当作 sing-box 官方组件。参阅 Sub-Store 订阅转换文档。

  3. 选择输入格式和目标格式。

    输入格式要与原始内容一致,目标格式选择 sing-box。若原始订阅是 Clash YAML,却选择成 Base64,常见结果是解析失败或节点数量为 0。无法确定时,先用浏览器或 curl 查看返回内容,再决定格式。

  4. 生成输出。

    工具可能生成一个远程链接,也可能生成 JSON 文件。远程链接适合定期更新,但每次请求都可能暴露订阅凭据给托管转换服务;本地 JSON 便于检查内容,但不会自动跟随上游更新。根据隐私和更新需求择一使用。

  5. 保存为配置文件。

    如果输出内容是 JSON,将其保存为 config.json。不要把带有真实节点、UUID、密码、私钥或订阅地址的文件上传到公开仓库。

如果使用 Sub-Store 一类工具,还要区分“sing-box 输出链接”和“完整 sing-box 配置文件”。前者可能主要提供节点数据,后者才可能包含 DNS、route、入站和日志等完整配置;导入前应打开文件确认结构,而不是只看文件扩展名。

转换后先校验:命令、结果和处理方法

官方 sing-box 配置文档列出了 sing-box check 检查命令。假设可执行文件已经安装,并且配置文件位于当前目录,可以运行:

sing-box check -c config.json

如果你的版本不接受该参数形式,可先运行 sing-box check --help 查看当前版本帮助;版本差异未核实时,不要照抄其他项目的启动参数。

校验结果怎么判断
现象含义处理方式
命令返回成功且没有报错JSON 结构和当前命令支持的配置字段通过基础检查继续检查节点数量、tag、协议参数和客户端导入结果
JSON parse error文件不是合法 JSON,可能有多余逗号、注释或截断用编辑器格式化,删除注释和末尾多余逗号,再检查
unknown field 或字段不支持配置字段与当前 sing-box 版本或目标客户端不匹配对照当前官方配置文档,删除未经确认的字段,避免套用旧模板
检查通过但节点为 0格式选择错误、上游返回空内容,或协议被过滤先保存原始返回内容,重新确认输入格式和过滤条件
检查通过但无法连接JSON 结构正确不代表远端节点参数有效检查 server、server_port、认证信息、TLS、传输层和时间设置

下面是一个仅用于验证 JSON 结构的最小配置,它只包含本地直连出口,不代表可连接任何远程节点:

{
  "log": {
    "level": "info"
  },
  "outbounds": [
    {
      "type": "direct",
      "tag": "direct"
    }
  ]
}

实际转换得到的远程节点字段必须以当前 sing-box 文档和转换结果为准。不要因为某个节点使用 VLESS、Hysteria2、TUIC 或 WireGuard,就自行猜测字段名称、认证方式或传输参数。

导入 sing-box 客户端时,先区分远程配置和本地 JSON

sing-box 官方列出了 Android、Apple 平台、Windows 和 Linux 等图形客户端,但不同平台的菜单名称和导入能力可能不同,可在官方客户端页面确认对应项目。参阅 sing-box 图形客户端列表。

  1. 远程配置:在客户端中选择新增配置、远程配置或 URL 导入一类入口,粘贴转换后的链接,保存后执行更新。菜单名称以当前版本界面为准。
  2. 本地 JSON:将 config.json 传到设备后,在客户端选择本地文件或导入配置,选中该文件,再运行配置检查。
  3. 检查节点和出口:确认配置列表中能看到节点或出站项。若只有 direct,说明导入的是最小配置或转换结果没有生成远程节点。
  4. 先不开 TUN 测试:优先使用客户端提供的系统代理或应用内代理方式验证节点,确认基本连接后再处理 TUN、DNS 和路由问题。TUN 需要的权限、网卡和路由设置可能因系统而不同。

如果只是想更新节点,远程配置更方便;如果需要手动审查 DNS、route、规则和协议字段,本地 JSON 更容易检查。两者不要混淆:一个 URL 返回的内容不一定就是完整配置文件。

转换失败或导入后不能用:按顺序排查

  1. 先测原始订阅是否有返回。

    在本机终端执行,以下地址仅作占位示例:

    curl -L --fail --max-time 20 "https://example.invalid/your-subscription" -o raw.txt

    如果命令失败,先处理订阅地址、网络、认证或上游服务问题,不要先修改 sing-box 配置。真实订阅地址不要放进文章、截图或公共日志。

  2. 查看返回内容的类型。

    打开 raw.txt,判断它是 YAML、Base64、URI 列表还是 JSON。若返回的是登录页、错误页、HTML 或空文件,说明转换器拿到的不是有效订阅。

  3. 检查节点数量。

    转换后搜索 outbounds、节点协议名称和 tag。完整配置通常还应结合 DNS、route 或客户端要求的其他字段;只有节点列表时,不能直接假定它具备完整分流能力。

  4. 检查协议参数是否完整。

    重点查看服务器地址、端口、UUID或密码、TLS、SNI、传输层、Reality 公钥与短 ID等字段是否来自原始订阅。缺字段时不要凭记忆补写,应回到原订阅或转换工具重新生成。

  5. 最后才排查 TUN、DNS 和系统网络。

    如果配置检查通过、普通代理能连接,但开启 TUN 后不能上网,先关闭 TUN 回到普通代理测试,再单独检查系统权限、虚拟网卡、路由和 DNS。不要把 TCP 连通性测试结果当成 UDP 或 QUIC 协议的完整结论。

订阅安全:在线转换前后的最低限度检查

  • 不要公开粘贴订阅链接。订阅链接可能包含可直接更新节点的凭据,分享前应删除或打码。
  • 优先使用专用输出。后台已经提供 sing-box 格式时,通常不必把原始订阅交给额外的在线转换站。
  • 需要在线转换时,先确认数据流向。查看工具是否需要远程拉取、是否保存订阅、是否支持自建部署;未核实的数据处理方式不要当成安全承诺。
  • 怀疑泄露就及时处理。回到订阅提供方后台查找重置、重生成、撤销或更换订阅链接的功能;具体按钮名称以当前后台为准。
  • 不要把真实配置用于公开调试。分享报错时,至少删除订阅 URL、服务器地址、认证信息、私钥、公钥和可识别节点名称。

结论:最短可执行路径

  1. 先找 sing-box 专用链接;有就直接导入。
  2. 没有专用链接,再识别原始格式,不要盲选输入类型。
  3. 生成远程链接或本地 JSON后,检查是否包含实际节点。
  4. 运行 sing-box check -c config.json,先解决 JSON 和字段错误。
  5. 先不开 TUN 验证基本连接,再分别排查 DNS、路由和系统网络。
  6. 涉及真实订阅时,始终把链接当作敏感凭据处理。

如果转换后仍然是 0 节点、配置字段不兼容或远程更新失败,保留原始返回状态和脱敏后的错误信息,再根据输入格式、输出格式和当前客户端版本逐项定位。

常见问题

sing-box 订阅可以直接导入吗?

如果服务后台已经提供 sing-box、JSON 或对应客户端专用链接,可以先直接导入。Clash YAML、Base64、URI 列表等格式不能默认视为 sing-box 完整配置,是否需要转换要看实际返回内容。

为什么转换后显示 0 个节点?

常见原因包括输入格式选错、原始订阅返回空内容或错误页、转换工具过滤了不支持的协议,以及订阅本身没有返回节点。先用浏览器或 curl 保存原始返回内容,再核对输入格式和过滤设置。

生成的 sing-box JSON 能通过 check,为什么还是连不上?

check 主要用于配置结构和字段层面的基础检查,通过不代表远端认证、TLS、传输层或服务器参数一定正确。应继续核对节点字段,并先不开 TUN 使用普通代理方式测试。

在线订阅转换会不会泄露订阅?

存在需要核实的数据暴露风险,因为转换工具可能需要读取远程订阅。优先使用订阅提供方自带输出、本地或自建工具;不要公开分享真实链接,怀疑泄露时及时重置或撤销。

完整配置和只有 outbounds 的结果有什么区别?

完整配置通常还会包含 DNS、inbounds、route、日志等结构;只有 outbounds 的结果主要是节点数据,导入后可能缺少分流、DNS或本地入站设置。应打开 JSON 检查顶层字段,不要只看文件名。

相关阅读

参考资料

  1. sing-box 配置结构与 check 命令文档
  2. sing-box 官方图形客户端列表
  3. Sub-Store 订阅转换文档(sub-store-org.github.io)
  4. Sub-Store 订阅概览与输出链接说明(sub-store-org.github.io)