跳到主要内容

订阅转换是什么?Clash、sing-box 格式转换的用法与风险

机场只给了 Clash 订阅,sing-box 或 v2rayN 却导入不了,这时就需要订阅转换。本文解释转换做了什么、什么时候真的需要、客户端自带转换与本地转换怎么用,以及公共转换服务泄露机场订阅链接的风险与替代方案。

发布于 约 4 分钟 · 1695 字进阶
订阅转换用法与风险封面

直接答案

订阅转换是把机场下发的一种订阅格式(如 Clash YAML 或 Base64 节点列表)改写成另一种客户端能读的格式(如 sing-box JSON)。只有在机场不提供目标客户端格式时才需要它;多数主流机场已直接提供 Clash、Clash Meta、sing-box、通用 Base64 多种订阅,先在用户中心找。确实需要转换时,优先用客户端自带的转换功能或本地运行的转换程序,不要把机场订阅链接提交给来历不明的公共转换网站。

订阅转换是机场用户中最容易被过度使用、又最容易踩坑的工具。它能做的只有一件事:把机场下发的一种订阅格式改写成另一种客户端能读的格式。它不能让连不上的节点连上、不能绕过流量限制、也不会让线路变快。本文先说清楚什么情况下真的需要转换,再给出三种从安全到不安全的转换方式,最后讲风险。还不清楚各客户端吃什么格式的,先看 如何导入订阅链接。

转换到底改了什么

一条机场订阅链接返回的内容,本质上是节点列表加规则。不同客户端要求的「包装」不同:

格式典型客户端内容形态是否含分流规则
Clash / Clash Meta YAMLClash Verge Rev、Mihomo Party、Clash Meta for Android、Stashproxies、proxy-groups、rules 三段含
通用 Base64 订阅v2rayN、v2rayNG、Shadowrocket一行 Base64,解码后是 vmess://、trojan:// 等节点链接不含
sing-box JSONsing-box、Hiddifyoutbounds、route、dns 对象含
Surge / Quantumult X 列表Surge、Quantumult X文本行,每行一个节点部分含

转换程序做的就是解析源格式里的节点字段(服务器、端口、协议、加密、传输层参数),再按目标格式重新写出来。这里有两个必然的损失点:一是源格式没有的信息凭空造不出来,Base64 订阅转成 Clash 后规则是转换程序套的模板,不是机场原配;二是协议参数映射可能不完整,例如 Reality、Hysteria2 的某些字段在旧版转换程序里会丢失,导致转换后的节点全部不可用。协议差异见 机场协议详解。

什么时候真的需要转换

按顺序自查,大多数人走到第二步就结束了:

  1. 打开机场用户中心,看订阅入口列表。主流机场普遍提供 Clash、Clash Meta、sing-box、通用订阅四种以上,直接复制对应格式。
  2. 用户中心只有一个「订阅链接」时,用浏览器打开看返回内容:YAML 文本就是 Clash 格式,Base64 乱码就是通用格式。
  3. 目标客户端支持该格式就直接导入;不支持的才进入转换。
  4. 转换前先问客服有没有隐藏入口,不少机场的 sing-box 订阅不在面板上但可以索取。

ℹ️ 说明

Clash Verge Rev 与 Mihomo Party 导入 Base64 通用订阅时会自动转换成 Clash 配置,Hiddify 导入任意格式时会自动转换成 sing-box 配置。这两条路径都在本机完成,不经过第三方。

三种转换方式

方式数据去向风险适用
客户端内置转换本机低Clash Verge Rev、Mihomo Party、Hiddify、Shadowrocket 都支持
本地运行转换程序本机低,需要一点配置能力需要自定义规则模板或批量转换
公共转换网站第三方服务器高,订阅链接完整暴露不推荐,万不得已后立即重置订阅

客户端内置转换

  • Clash Verge Rev:「订阅」页点新建,类型选「远程」,粘贴通用订阅链接,客户端会把 Base64 节点自动转成 proxies。规则用客户端自带模板或 Merge 覆写补充。
  • Mihomo Party:导入时同样自动识别,设置中可选转换后使用的规则模板。
  • Hiddify:直接粘贴任意格式,内部调用 sing-box 内核的转换逻辑,生成的 JSON 可以导出给 sing-box 官方客户端。
  • Shadowrocket:添加订阅时识别 Clash 与通用格式,无需手动转换。

本地运行转换程序

常用的是 subconverter,在本机启动后通过参数指定目标格式:

# 本地启动转换服务后,生成 sing-box 格式(url 参数需做 URL 编码)
curl -sS "http://127.0.0.1:25500/sub?target=singbox&url=https%3A%2F%2Fexample.com%2Fsub%3Ftoken%3Dxxxx&emoji=true" -o config.json
# Windows PowerShell
$src = [uri]::EscapeDataString("https://example.com/sub?token=xxxx")
Invoke-WebRequest "http://127.0.0.1:25500/sub?target=clash&url=$src" -OutFile config.yaml

常用 target 值:clash、clashr、singbox、v2ray、surge&ver=4、quanx。转换出的文件导入客户端后,先做一次延迟测试,全部超时就说明参数映射丢了字段,换新版本转换程序或改回官方订阅。

转换后的验证

  1. 延迟测试至少三个不同协议的节点,确认都有响应。
  2. 看转换结果里的规则段是否与你的预期一致,模板规则可能把 AI 工具域名分到了直连。
  3. 对比转换前后的节点数量,缺少的多半是不支持的协议。

风险:你交出去的是账号凭证

机场订阅链接里的 token 就是你的账号凭证。公共转换网站拿到链接后,理论上可以拉取你的全部节点、用你的流量、占用你的设备数,甚至把节点转卖。即使网站本身没有恶意,它的日志、缓存与被攻破的可能性都不受你控制。

⚠️ 注意

曾用过公共转换网站的,无论对方是否可信,都建议到用户中心重置一次订阅链接,然后在所有设备上重新导入。重置后旧链接立即失效,之前的泄露风险随之归零。

除了泄露,还有三个次级风险:转换服务下线导致订阅更新失败,表现与机场故障一模一样;转换模板夹带规则,把某些域名指向你不知道的出口;转换服务缓存了旧节点,机场换服务器后你拿到的仍是旧地址。遇到更新异常时,先按 订阅更新失败怎么办 的方法用浏览器打开转换后的链接看返回内容。

预防:选机场时就避开转换

需要转换本身是一个信号,说明机场对客户端的支持不够全面。做 Clash 机场推荐与 sing-box 机场推荐时,我们把「用户中心直接提供 Clash Meta 与 sing-box 订阅」作为必要条件。宇宙云 与 灯塔加速 的面板都提供多格式一键复制,可信云 对 sing-box 与 Hiddify 的支持也比较完整;更多靠谱机场推荐可以按客户端在 客户端支持问题库 中筛选。已经买了只提供单一格式的机场,用客户端内置转换,不要碰公共网站。流量显示与转换无关的另一类订阅问题见 流量显示异常怎么办。

总结

  • 转换只是格式改写,节点、线路、倍率都不会变,不能让「连不上」变成「连得上」
  • 先在用户中心找对应格式,九成机场已经直接提供,根本不需要转换
  • 公共转换网站会拿到你完整的机场订阅链接,等于拿到账号凭证,这是最大的风险
  • Clash Verge Rev、Mihomo Party、Hiddify 内置了常见格式的转换,优先用它们

常见问题

Q机场订阅链接怎么导入 sing-box?

先看用户中心有没有 sing-box 或 JSON 格式的订阅入口,有就直接复制。没有的话,用 Hiddify 导入通用订阅,它会在本地转换成 sing-box 配置;或者在本机运行转换程序生成 JSON 再导入 sing-box 官方客户端。

Q机场订阅链接可以分享给别人吗?

不建议。订阅链接里的 token 等同于账号密码,对方可以无限制使用你的流量与设备数。把链接提交到公共转换网站也是一种「分享」,同样会带来泄露风险,转换后记得到用户中心重置订阅。

Q机场订阅链接泄露怎么办?

立刻到用户中心重置订阅链接或 token,旧链接随即失效,然后在自己的所有设备上重新导入新链接。如果机场支持查看在线设备或 IP 记录,顺便确认有没有陌生设备。

QClash 导入订阅失败怎么办?

先用浏览器打开链接看返回内容:返回 Base64 乱码说明这是通用订阅,而非 Clash YAML,需要换用户中心的 Clash 入口或在客户端里用转换功能;返回 YAML 却仍失败,多为 User-Agent 或缩进问题,详见订阅更新失败排查。

Q机场是否支持 sing-box?

大部分主流机场支持,但入口名称各不相同,可能叫 sing-box、SFA、SFI 或 JSON 订阅。少数机场只提供 Clash 与通用格式,这时才需要转换。购买前可以直接问客服要一份 sing-box 订阅样例。

参考资料与信息来源

  • sing-box 官方文档:配置格式 · outbounds 与 route 字段定义
  • subconverter 项目文档 · 转换参数与本地部署方式