1 为什么必须把机场链接「转成」Clash YAML
Clash / Mihomo 读的是一份结构化的 YAML:里面要有 proxies、proxy-groups、rules(以及新版里常见的 proxy-providers、rule-providers)等段落。而不少服务商给你的「订阅地址」返回的却是一整段 Base64,解码后往往是 ss://、vmess://、vless://、trojan:// 等分享链接逐行拼接——这与 Clash 期望的字段化描述不是同一种语言。
因此,在 图形客户端里直接粘贴这类原始订阅,常会看到解析失败、节点列表为空或只识别出部分协议。订阅转换做的就是把「通用分享格式」映射成 Clash 能理解的 type: ss、type: vmess 等条目,并通常附带一套默认的 proxy-groups 与基础 rules,让你至少能先连上,再按需替换规则集。
若你的服务商已经提供「Clash 专用订阅」或可直接下载完整 YAML,则未必需要再转一道;但一旦格式不匹配,与其手工把几十条节点抄进 YAML,不如走标准化转换流水线,减少抄写错误与后续合并冲突。
2 常见订阅里到底包含什么
典型机场订阅正文解码后,每一行往往对应一个节点:Shadowsocks 与旧式 SSR 以 ss:///ssr:// 开头;V2Ray 系常见 vmess://(JSON Base64);VLESS、Trojan 则多为 URI 方案名加查询参数。近年也有 Hysteria2、TUIC 等出现在同一订阅里,是否能在你的 Clash 变体上工作,取决于内核版本与协议实现,而不是转换器「魔法一键」能单独保证的。
订阅链接本身通常还带鉴权参数(如 token、路径中的随机串、或账户 cookies)。这意味着:任何「把完整订阅 URL 交给第三方网页转换」的行为,都等价于把账户维度的访问凭证暴露给对方服务器——下文会单独强调自建与最小暴露原则。
转换完成后 YAML 里一般会长什么样
成功转换后,你至少应能在文件中找到清晰的 proxies: 列表,以及指向这些节点的 proxy-groups:。规则段可能是精简的 MATCH 全走代理,也可能已经嵌入了某套模板。下面是一段极度简化的示意结构(仅帮助你对照字段,不代表可直接用于生产):
port: 7890
socks-port: 7891
mode: rule
proxies:
- name: example-ss
type: ss
server: example.com
port: 8388
cipher: aes-256-gcm
password: "your-password"
proxy-groups:
- name: PROXY
type: select
proxies:
- example-ss
rules:
- MATCH,PROXY
实际机场转换结果往往节点数量多、字段更长;你要检查的是:名称是否重复、TLS/SNI/ALPN 等与分享链接一致的参数是否被正确展开,而不是只看文件体积变大。
3 工具选型:在线、桌面与自建
社区里最常用的开源方案是 Sub-Converter(及带 Web 前端的发行版)。其核心能力是把订阅 URL 或本地文本批量解析,再按 target=clash 等参数输出目标格式。你可以:在自己机器或 VPS 上 Docker 跑一份、使用可信来源的公开实例、或仅在断网环境下用本地二进制 + 命令行完成转换。
在线转换站上手最快,但风险也最大:你的订阅 URL 一旦发出,对方即可能拉取完整节点列表与鉴权信息。若必须使用,建议至少确认站点信誉、使用一次性订阅或服务商提供的子账号专用链,并在转换后轮换订阅 token。更稳妥的路径永远是自建或局域网内网访问的实例。
4 Sub-Converter 典型操作流程
以最常见的「HTTP API」方式为例:转换服务对外暴露一个路径(不同发行版可能是 /sub 或文档中说明的端点),通过查询参数告诉它原始订阅地址与目标格式。你需要把原始订阅 URL 先做 URL 编码,再作为 url= 的值传入。若你在本机 Docker 映射了 25500 端口,浏览器或下载工具访问的形态通常类似:
http://127.0.0.1:25500/sub?target=clash&url=ENCODED_SUBSCRIPTION_URL&insert=false
访问成功后,应得到一份可保存为 .yaml 的文本。接下来在 Clash Verge Rev 中选择「导入配置」或「新建本地配置」粘贴保存;在 FlClash 上则可参考《FlClash 安卓完整配置教程》中的文件导入路径,把同一份 YAML 同步到手机。
若你更习惯命令行,也可用 curl 将结果重定向到文件,便于版本管理与 diff;这对「对比两次转换差异、排查节点缺失」特别有用。
emoji、是否支持 append_type 等细节以你所用的 Sub-Converter 版本文档为准;不同 fork 之间会有细微差别,遇到「参数无效」时先核对发行说明而非死记一篇教程。
5 关键参数:Clash 还是 Clash.Meta
近年主流客户端内核已普遍迁移到 Clash.Meta / Mihomo,新协议与行为与旧版 Premium 内核并不完全一致。转换时若仍选择过时的 target,可能出现字段不被识别、或需要事后手工改写 type 的情况。实操上建议你明确自己客户端所用的内核代际,并在转换器里选择带 Meta 语义的输出(具体选项名称随工具版本可能是 clash.meta、meta 等——以当前文档为准)。
其他常用开关包括:是否在输出中嵌入远程规则模板、是否追加节点类型注释、是否对节点名做 emoji 处理等。它们不改变节点本身,但会影响你后续阅读配置与合并 diff 的难度。insert=false 一类参数往往用于控制是否把某些片段写回特定段落,具体含义务必对照你所运行版本的说明,避免望文生义。
转换完成后,建议在客户端日志里观察启动阶段是否报「未知字段」或「不支持的协议」。若你计划在服务器上裸跑内核,可继续阅读《Linux 安装 Mihomo 并开机自启》,把同一份 YAML 纳入 systemd 管理。
6 与规则集、远程订阅合并
转换器给出的「全家桶」模板往往带有一份默认 rules,未必符合你对国内直连、流媒体分组、去广告等需求。更干净的做法是:把机场输出当作纯节点来源,与 rule-providers 维护的规则仓库拆开管理。站内《ACL4SSR 规则订阅配置详解》演示了如何把媒体与广告域名策略外置成可更新片段,你可以在同一套思路上把「节点订阅」与「规则订阅」解耦。
操作上常见两种路径:一是直接在主配置里用 proxy-providers 引用转换后的远程 YAML(适合频繁自动更新节点);二是把转换结果保存为本地文件,仅在变更时手动替换。前者省心,但要确认远程地址不被未授权访问;后者可控,但要记得在服务商轮换节点后重新导出。
无论哪种方式,合并时最忌讳的是策略组名称与规则引用不一致:例如规则写 PROXY,而转换模板把组名改成了 🔰 节点选择。合并后应用一次「配置校验」或在 UI 里展开策略树,能快速发现这类断裂。
7 排错清单
- 下载下来是空文件或 HTML:多半是订阅 URL 未编码、token 过期,或转换实例根本访问不到你的订阅域名;先用浏览器或
curl -I验证订阅是否 200。 - 有 proxies 但客户端仍报错:核对
target是否与 Meta 内核匹配;检查是否混入了当前内核不支持的协议类型。 - TLS 握手失败:对照分享链接里的
sni、host、allowInsecure等是否在 YAML 中一致展开;不要随意改服务端校验相关字段。 - 规则全走代理或全直连:先看
mode与rules末尾的MATCH;再对照《TUN 与分流教程》确认系统侧是否还有旁路 DNS。 - 怀疑 DNS 侧泄漏:代理已通但解析路径异常时,可延伸阅读《彻底防止 DNS 泄漏》做交叉排查。
8 总结
把 SS/V2Ray/Trojan 等机场订阅变成 Clash YAML,本质是一次格式映射 + 可选模板封装:映射由 Sub-Converter 完成,模板决定你拿到的是「能连即可」还是「自带一套可维护分流」。优先选择自建或可信内网实例,明确 Meta 内核对应的输出类型,再把规则与节点分层维护,长期成本最低。
与在多个单协议客户端之间来回切换相比,统一到 Clash 系后,策略组、规则与日志都在同一套语义下排错;配合图形客户端的 TUN 与订阅管理,日常维护会轻松得多。若你尚未选定桌面端载体,可从本站 下载页对比各发行版特性,再决定与手机端 FlClash 如何共用同一份配置思路。
相较依赖陌生网页「一键转换」的做法,自己掌控转换链路在隐私与可复现性上通常明显更稳;当你能清楚说出「订阅从哪来、经哪一版转换器、进了哪一个 proxy-groups」,绝大多数「导入失败」类问题都会缩小到可定位的几步之内。