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

直接答案
订阅转换是把机场下发的一种订阅格式(如 Clash YAML 或 Base64 节点列表)改写成另一种客户端能读的格式(如 sing-box JSON)。只有在机场不提供目标客户端格式时才需要它;多数主流机场已直接提供 Clash、Clash Meta、sing-box、通用 Base64 多种订阅,先在用户中心找。确实需要转换时,优先用客户端自带的转换功能或本地运行的转换程序,不要把机场订阅链接提交给来历不明的公共转换网站。
订阅转换是机场用户中最容易被过度使用、又最容易踩坑的工具。它能做的只有一件事:把机场下发的一种订阅格式改写成另一种客户端能读的格式。它不能让连不上的节点连上、不能绕过流量限制、也不会让线路变快。本文先说清楚什么情况下真的需要转换,再给出三种从安全到不安全的转换方式,最后讲风险。还不清楚各客户端吃什么格式的,先看 如何导入订阅链接。
转换到底改了什么
一条机场订阅链接返回的内容,本质上是节点列表加规则。不同客户端要求的「包装」不同:
| 格式 | 典型客户端 | 内容形态 | 是否含分流规则 |
|---|---|---|---|
| Clash / Clash Meta YAML | Clash Verge Rev、Mihomo Party、Clash Meta for Android、Stash | proxies、proxy-groups、rules 三段 | 含 |
| 通用 Base64 订阅 | v2rayN、v2rayNG、Shadowrocket | 一行 Base64,解码后是 vmess://、trojan:// 等节点链接 | 不含 |
| sing-box JSON | sing-box、Hiddify | outbounds、route、dns 对象 | 含 |
| Surge / Quantumult X 列表 | Surge、Quantumult X | 文本行,每行一个节点 | 部分含 |
转换程序做的就是解析源格式里的节点字段(服务器、端口、协议、加密、传输层参数),再按目标格式重新写出来。这里有两个必然的损失点:一是源格式没有的信息凭空造不出来,Base64 订阅转成 Clash 后规则是转换程序套的模板,不是机场原配;二是协议参数映射可能不完整,例如 Reality、Hysteria2 的某些字段在旧版转换程序里会丢失,导致转换后的节点全部不可用。协议差异见 机场协议详解。
什么时候真的需要转换
按顺序自查,大多数人走到第二步就结束了:
- 打开机场用户中心,看订阅入口列表。主流机场普遍提供 Clash、Clash Meta、sing-box、通用订阅四种以上,直接复制对应格式。
- 用户中心只有一个「订阅链接」时,用浏览器打开看返回内容:YAML 文本就是 Clash 格式,Base64 乱码就是通用格式。
- 目标客户端支持该格式就直接导入;不支持的才进入转换。
- 转换前先问客服有没有隐藏入口,不少机场的 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。转换出的文件导入客户端后,先做一次延迟测试,全部超时就说明参数映射丢了字段,换新版本转换程序或改回官方订阅。
转换后的验证
- 延迟测试至少三个不同协议的节点,确认都有响应。
- 看转换结果里的规则段是否与你的预期一致,模板规则可能把 AI 工具域名分到了直连。
- 对比转换前后的节点数量,缺少的多半是不支持的协议。
风险:你交出去的是账号凭证
机场订阅链接里的 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 项目文档 · 转换参数与本地部署方式

