订阅链接转 YAML:识别格式、生成 Clash/Mihomo 配置并导入
简答:订阅链接转 YAML 前,先确认它是远程配置、Base64 节点列表还是单条分享链接;再生成包含 proxies、proxy-groups 和 rules 的 Clash/Mihomo 配置,最后导入客户端并检查节点与策略组。
定义:订阅链接转 YAML,是把远程订阅或节点分享链接解析成符合 Clash、Clash Meta 或 Mihomo 配置结构的 YAML 文件或远程配置。
先试这一步:三分钟判断订阅能否直接转成 YAML
如果你只是想把订阅链接变成可导入的 YAML,先不要急着改配置。复制链接到浏览器地址栏访问一次:能直接看到以 proxies:、proxy-groups: 或 rules: 开头的内容,通常已经是 Clash 风格 YAML;如果页面是一长串字母、数字和符号,可能是 Base64 编码的节点列表;如果以 vmess://、vless://、trojan:// 或 ss:// 开头,则更像单条节点分享链接。
本站是第三方使用指南站,不是任何客户端项目的官方站。最稳妥的处理顺序是:先识别输入,再选择输出格式,最后导入客户端。不要把带有个人 token 的完整订阅地址贴到公开聊天、截图或不明转换服务中。Clash Verge Rev 的隐私说明明确提到,订阅地址通常可能包含个人 token,配置文件和日志也可能保存订阅 URL、节点地址、端口、密码和 UUID。Clash Verge Rev 隐私说明 github.com
| 你手里的内容 | 常见特征 | 下一步 |
|---|---|---|
| 远程订阅链接 | 以 http:// 或 https:// 开头,打开后返回配置或编码文本 | 优先直接导入客户端;不兼容时再转换 |
| Base64 节点列表 | 打开后是一长串编码字符,不能直接阅读 | 先解码,再生成 Clash/Mihomo YAML |
| 单条分享链接 | 以 vmess://、vless://、trojan://、ss:// 等开头 | 使用支持该协议的解析器生成节点 YAML |
| 已有 YAML 或 JSON | 能看到 proxies、proxy-groups、rules 或 outbounds | 先检查格式,不要重复转换 |
最快判断标准:如果客户端可以直接把它添加为“远程配置”,就不一定需要先下载成本地 YAML;只有在需要编辑、备份、合并或兼容其他客户端时,才有必要生成 YAML 文件。
订阅链接转 YAML 的标准流程
- 复制原始订阅地址。从提供方的用户中心或客户端配置页复制完整 URL,确认没有被换行、截断或自动添加空格。不要把已经生成的短链接和原始链接混在一起判断。
- 选择输出目标。Clash Verge Rev 内置 Clash.Meta,也就是现在常说的 Mihomo 内核,适合选择 Clash YAML 或 Mihomo YAML 类输出;sing-box JSON 不是同一种配置格式,不能把 JSON 文件直接改名为 YAML 后导入。Clash Verge Rev 官方仓库说明它是 Clash Verge 的延续,并内置 Clash.Meta(Mihomo)内核,支持 Windows、macOS 和 Linux。Clash Verge Rev 官方仓库 github.com
- 使用可信的转换方式。如果转换工具明确说明“浏览器本地处理”,仍应查看页面是否真的不向服务器发送订阅内容;如果没有说明数据流向,应按可能上传处理来对待。不要为了省一步,把包含 token 的订阅交给不明服务。无法确认本地处理或数据流向时,优先使用客户端原生远程订阅功能。
- 生成并下载 YAML。转换成功后,先用文本编辑器打开文件,确认它不是 HTML 错误页、登录页或一段普通提示文字。文件扩展名是
.yaml或.yml并不代表内容一定有效。 - 检查关键字段。完整配置通常至少需要能被客户端识别的代理、策略组和规则结构。使用代理提供者时,Mihomo 文档要求为每个 provider 设置唯一名称,HTTP 类型需要配置 URL,还可以设置更新间隔。Mihomo proxy-providers 配置文档 wiki.metacubex.one
- 导入并选择配置。导入后不要只看“文件已添加”,还要确认节点数量、策略组内容和连接日志。实际是否走了代理,应看连接日志里命中的策略,或对比出口 IP,不要只凭图标判断。
如果你使用的是 Clash Verge Rev,官方文档列出远程订阅、订阅链接配置和 URL Scheme 等导入方式,也支持将本地配置文件导入。遇到 client error(Connect),可改用另一种导入方式;涉及证书选项时,不要默认开启“允许无效证书(危险)”,只有确认订阅源和网络环境后再处理。Clash Verge Rev 配置文件导入文档 github.com
生成后的 YAML 应该长什么样
下面是一个结构示例,不包含真实节点和订阅地址。它的作用是帮助你检查字段层级,不是可以直接使用的节点配置。示例中的策略组引用了同一份 proxy-providers,因此不会出现“策略组名称存在,但没有节点来源”的问题。
proxy-providers:
my-subscription:
type: http
url: "https://example.com/subscription.yaml"
path: ./proxy-providers/my-subscription.yaml
interval: 3600
proxy-groups:
- name: Proxy
type: select
use:
- my-subscription
proxies:
- DIRECT
rules:
- MATCH,Proxy检查时重点看四点:第一,proxy-providers 的名称是否唯一;第二,策略组里的 use 是否引用了已经声明的 provider;第三,rules 最终是否指向存在的策略组;第四,缩进是否统一。Mihomo 的策略组文档说明,proxies 用于引用代理或其他策略组,use 用于引用代理集合,两者不是同一个字段。Mihomo proxy-groups 配置文档 wiki.metacubex.one
不要这样判断:不能只看到文件中有一串节点,就认为它能运行;也不能把 sing-box 的 JSON 字段、其他内核的字段直接写到 Mihomo YAML 中。不同内核的字段名和层级可能不同,转换时应以目标客户端和对应内核的文档为准。
导入 Clash Verge Rev、Mihomo 或 Clash Meta 的步骤
- Clash Verge Rev:打开配置或 Profiles 页面,选择远程订阅导入,或选择本地配置文件导入。导入后点击该配置使其成为当前配置,再查看节点和策略组。官方界面文案包含 Import、Remote、Local、Subscription URL 和 Update 等配置管理项。Clash Verge Rev 配置管理界面源码 github.com
- 独立 Mihomo:把 YAML 放入配置目录,启动时指定配置文件,或使用 Mihomo 支持的配置管理方式加载。需要确认配置中的字段确实属于 Mihomo 文档,不要将其他项目的字段直接复制过来。
- 其他 Clash.Meta 客户端:选择 Clash YAML 或与其明确兼容的输出,不要选择 sing-box JSON、Surge INI 等其他格式。若客户端只接受远程链接,可保留远程订阅;若需要本地编辑,则下载 YAML 后再导入。
Clash Verge Rev 的定位是桌面图形客户端,前身是 Clash Verge 的延续版本,当前项目说明其基于 Tauri,并内置 Clash.Meta(Mihomo)核心。它覆盖 Windows、macOS 和 Linux;iOS 没有对应的 Clash Verge Rev 桌面客户端,不能把 Windows/macOS 的 YAML 文件直接当作 iOS 应用配置使用。Clash Verge Rev 官方功能说明 github.com
转换成功但导入失败:按报错逐项排查
| 现象 | 优先检查 | 处理方法 |
|---|---|---|
| invalid YAML、解析失败 | 缩进、冒号、引号、Tab 字符 | 用支持 YAML 的编辑器重新保存,统一使用空格;检查字符串中的冒号和特殊字符是否需要引号。 |
| 导入后没有节点 | 订阅返回内容、Base64 解码结果、协议类型 | 浏览器打开链接确认不是登录页或错误页;重新复制完整链接;检查转换器是否支持对应协议。 |
| 链接过期或返回 401/403 | token、有效期、请求头、访问来源 | 回到订阅管理页重新复制;如果服务要求特定 User-Agent,使用客户端的请求头设置;不要反复公开粘贴原链接。 |
| 源站不可访问 | DNS、网络、证书和系统代理 | 先用浏览器测试 URL,再检查客户端是否通过正确的代理更新;必要时切换导入方式。 |
| 有节点但策略组为空 | proxy-groups 的 proxies/use 引用 | 确认引用的节点、策略组或 provider 名称与声明处完全一致;名称大小写和空格也要检查。 |
| 导入后能更新但不会自动更新 | 本地文件与远程订阅的区别 | 本地 YAML 是静态文件;要保持自动更新,应保留远程配置或使用支持 URL 和 interval 的 provider。 |
自动更新要特别区分两种结果:下载一个 YAML 文件后再导入,得到的是本地副本,后续不会因为源站变化而自动改变;使用远程配置或 proxy-providers 时,客户端才有机会按设置的更新间隔重新请求 URL。Mihomo 官方配置示例同时展示了远程 provider 的 URL 和 interval 字段,但具体更新行为仍以客户端实现为准。Mihomo 官方快速配置示例 wiki.metacubex.one
如果转换后出现“节点存在但网页打不开”,先不要重新转换。检查当前模式、策略组选择、DNS 和系统代理残留,再看连接日志中请求命中了哪个策略。端口常见默认为 7897 或 7890,但应以客户端设置页为准。
订阅链接转 YAML 的安全清单
- 订阅链接通常等同于访问凭证,截图和复制时遮住 token、密码、UUID 等敏感部分。
- 优先使用客户端原生导入,或选择明确说明数据流向的转换方式;“浏览器打开”不等于“完全本地处理”。
- 下载后先查看文件内容,确认不是 HTML 登录页、错误页或异常脚本内容。
- 导入陌生远程配置前,先查看策略组、规则、DNS、TUN 和外部控制相关字段;不明来源的配置不要直接设为当前配置。
- 转换失败时重新生成链接或更换导入方式,不要把完整订阅地址发布到论坛、Issue 或公共代码仓库。
如果你只需要临时使用,远程订阅往往比下载 YAML 更省事;如果你需要备份、编辑、筛选节点或检查规则,才适合生成本地 YAML。对于无法确认来源、字段或数据流向的文件,宁可先停在文本检查阶段,也不要直接启用。
继续排查连接问题
当 YAML 已经成功导入,但仍然出现连接失败、DNS 异常或网页打不开,可以继续检查系统代理是否残留、TUN 虚拟网卡是否正常、DNS 是否被手动改错,以及当前请求是否命中了预期策略。以下站内页面可作为下一步:
- Clash订阅更新失败?先关代理再用浏览器10秒自测(附401/证书报错速查):适合处理订阅更新、401、证书和代理残留。
- 已连接但打不开网页?先查代理残留、TUN虚拟网卡和DNS:适合导入成功但网页仍无法访问的情况。
- Clash 分流规则匹配测试:适合确认某个域名最终命中了哪个规则和策略组。
常见问题
订阅链接可以直接改成 .yaml 文件吗?
不可以。扩展名只是文件名,内容仍可能是 Base64、JSON、HTML 错误页或其他格式。必须先确认返回内容,再按目标客户端生成有效 YAML。
Clash Verge Rev 应该选择哪种输出格式?
优先选择 Clash YAML 或明确标注兼容 Clash.Meta/Mihomo 的 YAML。不要把 sing-box JSON 直接改名为 YAML,也不要混用其他内核的字段。
转换后为什么没有节点?
先确认原链接没有过期、没有返回登录页或 401/403,再检查 Base64 是否正确解码、转换工具是否支持对应协议,以及生成的策略组是否引用了实际节点或 provider。
本地 YAML 和远程订阅有什么区别?
本地 YAML 是下载后的静态副本,除非重新下载,否则不会随源站变化;远程订阅或 proxy-provider 可以根据客户端设置重新请求 URL,是否自动更新取决于客户端配置。
把订阅链接提交给在线转换工具安全吗?
不能默认认为安全。订阅链接可能包含 token,除非工具明确说明处理方式、数据是否上传以及保存期限,否则应按敏感凭证处理,优先使用客户端原生导入或可验证的本地处理方式。