Clash 订阅链接怎么导入:URL 导入步骤与常见订阅格式区别
从复制订阅链接到客户端生效的完整导入流程,并说明 Clash 原生 YAML、Base64 节点列表与需转换格式之间的区别,帮你判断链接不被识别时问题出在哪。
Clash 里的“导入订阅”并不只是把网址保存下来。客户端会访问这个 URL,下载远端返回的配置内容,判断格式能否由当前内核解析,再把结果保存为本地配置。导入完成后,通常还要选中这份配置、选择代理节点,并开启系统代理或 TUN 模式,流量才会真正经过 Clash。
多数导入问题集中在三个环节:复制到的不是订阅地址、服务器返回的内容不属于当前客户端支持的格式,或者配置已经下载成功但没有被设为当前配置。下面先完成一次标准 URL 导入,再逐项识别 YAML、Base64 节点列表和单条分享链接。
导入前先确认拿到的是订阅 URL
可用于远程更新的订阅通常以 https:// 开头,复制后是一整行网址,例如:
https://sub.example.com/api/client/subscribe?token=abc123&target=clash
网页地址、购买页面、控制台登录地址和订阅 URL 不是一回事。若浏览器打开后看到完整的账户后台、套餐信息或登录表单,复制的多半是普通网页。正确入口通常标为“Clash 订阅”“Clash Meta”“复制订阅地址”或“通用订阅”。服务提供方给出多个按钮时,优先选明确标注 Clash、Mihomo 或 Clash Meta 的版本。
复制后检查这四项
- 协议完整:地址必须包含
https://或http://,不能只剩域名和路径。 - 没有混入文字:链接前后不应带“订阅地址:”、引号、空格或换行。手机上长按复制时尤其容易多选一段说明。
- 查询参数未丢失:
?后面的 token、target 等参数可能决定身份与返回格式,手动截短会导致 401、403 或格式错误。 - 地址仍在有效期内:重置订阅、迁移账户或更换套餐后,旧 URL 可能立即失效,需要回到服务页面重新复制。
分享链接则是另一类内容。以 ss://、trojan://、vmess://、vless:// 或 hysteria2:// 开头的字符串,通常只描述一个节点,并不是可定时更新的 HTTP 订阅地址。部分客户端支持直接导入单节点,但应使用“从剪贴板导入”或“添加节点”,而不是订阅 URL 输入框。
Clash 订阅链接的标准导入步骤
不同客户端的菜单名称略有差异,但处理顺序一致:打开配置管理页,粘贴 URL,下载配置,启用配置,最后验证节点与流量状态。以下步骤适用于使用 Mihomo 内核的常见桌面与 Android 客户端。
桌面端:Clash Verge Rev 一类客户端
- 启动客户端,进入左侧的「订阅」页面。
- 在页面上方的订阅地址输入框粘贴完整 URL。
- 点击「导入」或按 Enter,等待远端配置下载完成。正常网络下通常在 1~10 秒内完成。
- 导入后检查配置卡片是否出现节点数量、更新时间和更新按钮。
- 点击配置卡片,使它成为当前启用的订阅。部分版本会显示选中状态或“当前配置”。
- 进入「代理」页面,在策略组中选择延迟合适的节点,或先执行一次延迟测试。
- 进入「设置」→「系统代理」,打开系统代理开关。需要接管不遵循系统代理的程序时,再配置 TUN 模式。
Android:Clash Meta for Android 一类客户端
- 进入「配置」页面,点击右上角的加号。
- 选择「从 URL 导入」或「新建配置」→「URL」。
- 填写配置名称,例如“日常订阅”,在 URL 一栏粘贴完整链接。
- 自动更新间隔可先设为
1440分钟,也就是每天更新一次;服务方有特殊要求时按其说明调整。 - 保存并等待下载,随后返回配置列表,点选刚创建的配置。
- 回到主页启动服务,再进入代理组选择节点。Android 首次启动会弹出 VPN 连接授权,需要由系统确认。
导入后的快速验收
完成导入后,可以用下面的结果判断每一步是否生效:
- 配置页显示订阅名称和最近更新时间,不再提示解析错误。
- 代理页能看到
PROXY、节点选择、自动选择等策略组,以及组内的节点。 - 延迟测试能返回具体毫秒数,例如 85 ms、210 ms,而不是一直显示超时。
- 日志页面出现连接记录,并显示命中的规则、目标地址和最终策略。
- 更新按钮可再次拉取配置,而不需要重复粘贴 URL。
Clash 原生 YAML 是什么
Clash 原生配置是一份结构化 YAML 文件。完整配置通常包含监听端口、运行模式、DNS、节点、策略组和规则等字段。Mihomo 延续了这套基本结构,并增加了更多协议与配置能力。适配 Clash 的远程订阅如果直接返回完整 YAML,客户端通常可以立即解析。
mixed-port: 7890
mode: rule
allow-lan: false
proxies:
- name: Example-Trojan
type: trojan
server: edge.example.com
port: 443
password: demo-password
sni: edge.example.com
proxy-groups:
- name: 节点选择
type: select
proxies:
- Example-Trojan
- DIRECT
rules:
- GEOIP,CN,DIRECT
- MATCH,节点选择
这段示例具备完整配置的主要轮廓:mixed-port: 7890 让 HTTP 和 SOCKS 请求共用本地混合端口;mode: rule 表示按规则分流;proxies 保存节点;proxy-groups 组织可供用户选择的策略;rules 决定连接最终走直连还是代理。
完整配置与代理集合 YAML 的区别
并非所有扩展名为 .yaml 的文件都能直接作为主配置。有一种代理集合文件只包含 payload,它通常由主配置中的 proxy-providers 引用:
payload:
- name: Example-SS
type: ss
server: node.example.com
port: 8388
cipher: aes-128-gcm
password: demo-password
如果把这种 provider 文件直接放进普通配置导入框,客户端可能提示缺少 proxies、proxy-groups 或 rules,也可能导入后没有可选策略组。它本身不是完整主配置,需要由包含 proxy-providers、策略组和规则的主 YAML 调用。
| 内容类型 | 常见开头或字段 | 能否直接作为 Clash 配置 |
|---|---|---|
| 完整 Clash YAML | mixed-port、proxies、proxy-groups |
通常可以 |
| 代理集合 YAML | payload: |
通常需要由主配置引用 |
| 规则集合 YAML | payload: 后接域名或规则 |
不能单独作为主配置 |
| 网页错误内容 | <html>、登录提示、错误页面 |
不能 |
Base64 节点列表为什么可能无法识别
通用订阅经常把多条节点分享链接按行排列,再把整段文本编码为 Base64。解码后的内容可能类似:
ss://[email protected]:8388#Example-SS
trojan://[email protected]:443?security=tls#Example-Trojan
vmess://encoded-json-data
这种内容不是 Clash YAML,没有 proxy-groups 和 rules。支持订阅转换的客户端可能在导入时自动把节点列表转换为内部配置;只接受 Clash YAML 的客户端则会提示 YAML 解析失败、配置格式错误,或者导入后没有策略组。
先选择服务方提供的 Clash 格式
如果订阅页面同时提供“通用订阅”“Clash”“Clash Meta”“Surge”等选项,优先复制 Clash 或 Clash Meta 链接。这样由订阅服务端直接生成目标格式,节点协议、策略组和规则也更容易与当前内核对应。
只有通用 Base64 链接时,应先确认客户端是否明确支持该格式。不要仅凭 URL 后缀判断:很多订阅地址没有 .yaml 扩展名,而是通过查询参数、请求头或服务端设置决定返回内容。浏览器下载出的文件名叫 subscribe,也可能实际是一份有效 YAML。
单节点分享链接不等于 Base64 订阅
vmess:// 后面的主体通常本身是 Base64 编码数据,但它描述的是一个 VMess 节点;一整份 Base64 订阅则是在编码前包含多行分享链接。两者的导入入口可能不同。遇到单条链接时,先找客户端的“从剪贴板导入”功能;需要长期自动更新时,则应向服务方获取 HTTPS 订阅 URL。
URL 导入失败时按报错类型排查
同样是“导入失败”,网络请求失败和格式解析失败的处理方向完全不同。先记录客户端显示的状态码、错误文本和发生时间,再对照下表定位。
| 现象或状态 | 常见原因 | 优先处理 |
|---|---|---|
| 超时、连接失败 | 订阅域名不可达、DNS 异常、当前网络限制 | 切换网络,检查系统时间与 DNS,再重试 |
| HTTP 401 或 403 | 令牌失效、账户状态异常、请求受到限制 | 回服务页面重新复制订阅并确认账户状态 |
| HTTP 404 | 路径失效、旧订阅已被重置 | 不要手改 URL,获取新的完整地址 |
| YAML 解析错误 | 返回 Base64、HTML 页面或 YAML 缩进损坏 | 确认选择 Clash 格式并查看响应内容类型 |
| 导入成功但节点为空 | 导入的是规则集、provider 文件或空订阅 | 检查是否存在 proxies 与策略组 |
| 节点存在但无法连接 | 节点不可用、系统时间偏差、策略未选中 | 校准时间,测试其他节点并检查策略组 |
用浏览器做基础判断
把订阅 URL 粘贴到浏览器地址栏,可以确认链接是否仍能访问。如果浏览器直接下载文本文件,说明服务器至少有响应;如果跳到登录页、套餐页面或验证码页面,客户端拿到的也可能是 HTML,而不是配置。浏览器能打开仍不代表格式一定正确,因为服务器可能根据客户端请求头返回不同内容。
用命令行检查 HTTP 状态
熟悉终端时,可以只查看响应头。执行命令前应避免在共享屏幕、终端历史同步或公开日志里暴露真实令牌:
curl -I -L --max-time 15 "https://sub.example.com/api/client/subscribe?token=abc123&target=clash"
-I 只请求响应头,-L 跟随跳转,--max-time 15 把最长等待时间限制为 15 秒。结果中的 200 表示请求已成功返回;301 或 302 后若最终落到登录页,通常是授权或链接问题;404 表示路径不存在。部分订阅服务不响应 HEAD 请求,此时命令可能失败,而客户端的正常 GET 请求仍可使用。
检查 YAML 缩进与字段
手动保存或编辑配置时,YAML 对缩进很敏感。列表项前的短横线、冒号后的空格、同一层级的缩进必须一致。Tab 制表符也可能导致解析器报错,通常应使用两个空格缩进。若原始订阅从服务端直接生成,不建议为了改节点名称而在下载文件中大范围替换,下一次远程更新也会覆盖本地改动。
自动更新间隔与本地配置如何选择
远程订阅适合需要同步节点变化的场景,本地 YAML 则适合测试规则、DNS 或策略组。把两者混在同一份自动更新配置里时,本地修改可能在更新后消失,因此需要先明确配置由谁维护。
更新间隔不要设得过短
常见的自动更新间隔是 1440 分钟,也就是 24 小时;节点变化频繁时可以设为 360 或 720 分钟。设置成 1~5 分钟会产生大量重复请求,服务端可能限制访问频率。临时需要最新节点时,直接点击一次“更新”更合适。
- 1440 分钟:适合日常使用,更新频率稳定。
- 720 分钟:每天更新两次,适合节点调整较频繁的订阅。
- 360 分钟:每 6 小时更新一次,应确认服务方允许该频率。
- 手动更新:适合长期固定配置,使用前按需刷新。
更新订阅时是否需要经过代理
部分客户端提供“通过代理更新”或“使用系统代理更新订阅”选项。当订阅域名在当前网络可以直连时,先保持直连更新,链路更简单;只有直连超时、而当前代理节点可用时,再尝试代理更新。若订阅更新依赖正在使用的同一份失效配置,可能形成无法更新的循环,此时可切换网络或先启用另一份可用配置。
保留一份可恢复的配置
在调整 DNS、TUN 或复杂规则前,可以导出当前可用配置,或保留一份基础本地配置。这样即使新订阅出现字段不兼容,也能先恢复网络,再继续检查。恢复配置时仍要注意:旧配置里的节点可能已经过期,备份的主要价值是保留端口、规则和运行参数。
导入后没有生效的最终检查清单
订阅已显示“更新成功”,网页却仍打不开时,按下面顺序检查。一次只改一项,更容易判断问题位于配置、节点还是系统接管环节。
- 确认配置列表中选中的是刚导入的订阅,而不是旧配置或空白本地配置。
- 进入代理组,将主策略从
DIRECT切换到一个延迟测试正常的节点。 - 确认运行模式为“规则”或“全局”。规则模式下,匹配
DIRECT的网站仍会直连,这是正常结果。 - 桌面端打开「设置」→「系统代理」;Android 端确认 VPN 服务处于运行状态。
- 检查本地端口是否冲突。常见混合端口为
7890,但应以当前配置中的mixed-port为准。 - 查看日志中是否出现目标连接。完全没有记录通常说明应用流量没有进入 Clash;有记录但报连接超时,则更接近节点或网络问题。
- 若只影响不遵循系统代理的程序,再考虑 TUN 模式,不要把 TUN 当作订阅格式错误的修复方法。
判断订阅格式时,最有用的线索不是文件名,而是实际返回内容:完整 Clash YAML 应有节点、策略组与规则;provider YAML 只有供主配置引用的集合;Base64 通用订阅解码后通常是多条分享链接;HTML 则意味着拿到了网页或错误页面。按照“获取 URL—下载响应—识别格式—启用配置—验证流量”的顺序检查,通常可以快速定位导入卡在哪一步。