Clash订阅更新失败?先关代理再用浏览器10秒自测(附401/证书报错速查)
简答:排查 clash 订阅更新失败只需三步(前提是订阅地址为 Clash/Mihomo 兼容的 YAML 格式):1. 先关闭客户端系统代理与 TUN 模式;2. 将订阅链接贴入浏览器无痕窗口分流自测;3. 按具体报错修改 User-Agent、调整证书校验或另存为本地 YAML 文件导入。
定义:Clash订阅更新失败是指客户端(如 Clash Verge Rev)向远程服务器发起 HTTP/HTTPS 请求拉取 YAML 节点配置文件时,因更新请求被失效代理或 TUN 接管而超时、DNS 污染、TLS 证书校验拦截(UnknownIssuer)、User-Agent 请求头受阻或本地配置文件异常,导致无法下载或解析节点列表的通信故障。
第一步:先关系统代理,再用浏览器10秒自测分流
点了十几次刷新还是失败?先别急着重装软件,大多数情况按下面的「浏览器能否打开」二选一分流表走就能快速定位原因(本文操作步骤以 Windows 与 macOS 平台的 Clash Verge Rev 客户端为例)。
很多新手在遇到 clash 订阅更新失败 时,最容易踩的坑是:开着已经失效的系统代理或虚拟网卡(TUN 模式)去刷新订阅,导致更新请求被失效代理或 TUN 接管而直接超时。在排查任何报错代码前,请先花 10 秒钟完成以下两步:
- 彻底关闭代理开关:打开 Clash Verge Rev 客户端,在主界面将「系统代理(System Proxy)」和「虚拟网卡模式(TUN Mode)」全部关闭。如果此前节点已经断连,保持代理开启会让更新请求继续走失效通道而超时。
- 用浏览器无痕窗口直连访问订阅链接:从服务商后台复制标注为 Clash 或 Mihomo 的订阅地址(确保输出为 YAML 格式),粘贴到 Chrome、Edge 或 Safari 的无痕窗口中访问。
| 浏览器10秒自测结果 | 说明什么问题 | 下一步直接去哪一节 |
|---|---|---|
A. 浏览器能正常打开(弹出文件下载框,或页面显示出 proxies: 等配置文本) | 本地网络可直连订阅源站,链接未失效;问题出在客户端 UA 请求头、TLS 证书校验或本地配置目录异常 | 请看下方「常见报错速查:401、UnknownIssuer 与 error sending request」及「为什么订阅在浏览器能打开,放进Clash就更新失败?」 |
| B. 浏览器也打不开(提示无法访问此网站、连接超时或重置) | 当前网络环境无法直连该订阅域名(可能遭遇网络阻断或本地 DNS 污染),且本地无可用节点支持代理更新 | 请先尝试切换手机 4G/5G 热点刷新;若热点下浏览器能打开,直接看最后一节「终极兜底方案:浏览器另存为本地 .yaml 文件手动导入」 |
这也是社区排查框架中核心的“从外到内(网络→链接→客户端)”分流逻辑(据 订阅更新失败显示网络错误? - Clash版本库)。针对表格中的情况 B,正如 [BUG] 订阅显示使用Clash代理更新也失败 #3452 - GitHub 与 订阅更新失败,使用clash代理更新也失败· Issue #5014 - GitHub 中用户反馈的典型现象:当本地没有可用节点且订阅域名无法直连时,无论选“直连更新”还是勾选“使用 Clash 代理更新”都会双双报错,此时必须先借助热点或本地导入恢复首个可用节点。
常见报错速查:401、UnknownIssuer 与 error sending request
当客户端右上角弹窗或日志中给出具体的英文报错时,可按以下对应方案逐项处理:
1. 导入或更新订阅报错 401
遇到 401 报错时,请严格按以下顺序排查,避免误删数据:
- 先用浏览器判断是否为远端 Token 失效:按第一节方法在浏览器无痕窗口访问订阅链接。如果浏览器同样返回 401 或提示鉴权失败,说明你在服务商后台重置过订阅密码或套餐已过期,需重新复制新链接导入。
- 若浏览器能正常打开,再清理客户端配置目录:如果浏览器访问正常但客户端报 401,据 其他问题 - Clash Verge Rev Docs 给出的解决方案,可通过清空配置目录修复。风险提示:删除配置目录内文件会清空客户端已有的订阅列表与本地设置,操作前请务必先将所有订阅链接备份到记事本!
- 图形界面清理步骤(Windows / macOS 通用):点击客户端左侧菜单「设置(Settings)」,在右下方找到并点击「配置目录(Open Conf Dir)」打开文件夹;随后完全退出 Clash Verge Rev 程序,删除刚才打开的文件夹内的所有文件,再重新启动软件导入订阅。
- 命令行重置步骤(当软件无法打开或伴随
No such file or directory (os error 2)时):据 其他问题 - Clash Verge Rev Docs 与 卸载软件 - Clash Verge Rev Docs 说明,os error 2通常是内核或配置文件损坏,或内核文件被安全软件隔离所致。退出软件并备份好订阅链接后,可按系统执行对应清理命令:
Windows(打开自带 PowerShell 执行):rm ~\AppData\Roaming\io.github.clash-verge-rev.clash-verge-rev -r -fo
macOS(打开自带终端 Terminal 执行):rm -rf ~/Library/Application\ Support/io.github.clash-verge-rev.clash-verge-rev
判定标准:命令执行后无报错返回即表示目录已重置。重启软件后若仍报os error 2,请检查安全软件隔离区是否误删了内核二进制文件,将其恢复并加入信任/排除白名单,再卸载旧版重新安装。
2. 报错 invalid peer certificate: UnknownIssuer(无效的证书)
采用 Mihomo(原 Clash Meta)内核的 Clash Verge Rev 对 HTTPS 订阅链接的 TLS 证书链校验较为严格。当远端订阅服务器证书链配置不完整,或本地安全软件对 HTTPS 连接进行了加密扫描替换证书时,就会报错 error trying to connect: invalid peer certificate: UnknownIssuer(据 其他问题 - Clash Verge Rev Docs,安全软件拦截还会伴随节点延迟测试立马提示超时、TUN 模式卡顿等现象)。
- 优先处理安全软件拦截(推荐):据 其他问题 - Clash Verge Rev Docs 说明,若本地安装了开启 HTTPS/Web 扫描加密功能的安全软件(如官方排障文档中点名举例的火绒等),建议优先将客户端的二进制内核文件添加到安全软件的信任程序/排除名单中并重启软件;若仅将关闭 Web 扫描加密功能作为临时排查手段,请在排查结束后及时恢复开启,以免降低系统日常安全防护。
- 临时应急方案(勾选允许无效证书):在客户端左侧进入「订阅(Profiles)」,右键点击报错的订阅卡片选择「编辑信息(Edit Info)」,勾选 「允许无效证书(危险)/ Accept Invalid Certs (Danger)」 后保存更新(据 其他问题 - Clash Verge Rev Docs)。
安全风险与恢复提醒:勾选该选项会跳过 TLS 证书合法性校验,使该次订阅拉取失去中间人攻击(MITM)防护,存在订阅配置在传输中被篡改的风险。建议仅在确认网络环境安全时作为临时应急使用;拉取成功或联系服务商修复服务端证书链后,请及时改回不勾选状态。
3. 报错 error sending request for url 与 curl 状态码对照诊断
看到 error sending request for url (...) 或 Network Error 时,代表 HTTP 请求未能成功完成。由于部分订阅服务器不支持 HEAD 请求(用 curl -I 会误报 405),建议在关闭系统代理后,打开系统终端用 GET 请求配合状态码输出做精准诊断(思路参考 订阅更新失败显示网络错误? - Clash版本库)。
命令 1:默认请求测试(Windows 10 1803 及以上版本打开 CMD,macOS 打开终端;请将示例链接 https://example.com/sub?token=xxx 替换为你的真实订阅地址,保留英文双引号):
Windows CMD 执行:curl -s -o NUL -w "%{http_code}" "https://example.com/sub?token=xxx"
macOS 终端执行:curl -s -o /dev/null -w "%{http_code}" "https://example.com/sub?token=xxx"
命令 2:模拟客户端 User-Agent 对照测试(直接验证服务器是否针对客户端标识进行了拦截或特殊响应):
Windows CMD 执行:curl -A "clash-verge/v2.0.4" -s -o NUL -w "%{http_code}" "https://example.com/sub?token=xxx"
macOS 终端执行:curl -A "clash-verge/v2.0.4" -s -o /dev/null -w "%{http_code}" "https://example.com/sub?token=xxx"
判定标准(查看终端返回的 3 位数字状态码):
- 返回
200:说明网络连接与远端链接正常。若命令 1 返回200而命令 2 返回403或000,说明默认客户端 UA 受阻,请按下一节修改 User-Agent。 - 返回
301或302:订阅链接存在重定向跳转,可在命令中加上-L参数观察最终状态码,或检查跳转后的新域名是否可用。 - 返回
403/404/502:远端防火墙拦截、订阅地址不存在或源站故障,需登录服务商后台检查或联系提供方。 - 返回
000:代表 DNS 解析失败或 TCP/TLS 连接超时(可去掉-s改用curl -v查看具体卡在域名解析还是握手阶段),请刷新本地 DNS 缓存或切换手机热点。
为什么订阅在浏览器能打开,放进Clash就更新失败?
在 最近clash 导入订阅经常无法成功到底是什么原因? - V2EX 的社区讨论帖中,不少用户反馈了同一个怪象:订阅链接在浏览器里直连始终能正常打开,但放进桌面客户端里就无法拉取配置。结合社区用户反馈与官方文档说明,主要原因集中在以下两点:
- 原因一:客户端请求头(User-Agent)与浏览器的差异。有 V2EX 用户在 最近clash 导入订阅经常无法成功到底是什么原因? - V2EX 帖中推测,多数图形客户端底层调用内置 HTTP 库或类似
wget的方式拉取配置,其默认发送的请求特征与普通浏览器不同,在不同网络环境下表现存在差异(帖中有用户反馈切换网络或手机移动网络后又能正常拉取)。同时,部分服务商的防火墙(WAF)或订阅下发程序也会校验User-Agent:有的会拦截未知 UA,有的则要求必须携带特定客户端标识才下发新型协议节点。 - 原因二:更新频率过高触发服务端限流。据 订阅更新失败显示网络错误? - Clash版本库 说明,若客户端设置的自动更新间隔过短,高频请求容易被源站限流或临时封禁,导致客户端拉取到空文件或报错。
在 Clash Verge Rev 中修改 User-Agent 与更新间隔的步骤
- 打开 Clash Verge Rev,在左侧菜单进入「订阅(Profiles)」。
- 右键点击更新失败的订阅卡片,选择「编辑信息(Edit Info)」。
- 找到 「User-Agent」 输入框,按以下两种场景调整:
- 场景 A(解决 Hysteria2 等节点被过滤或无法拉取):据 其他问题 - Clash Verge Rev Docs 说明,若订阅或
proxy-providers中的 Hysteria2(HY2)节点无法拉取,需确保 UA 包含clash-verge字样(版本号不重要),可填入clash-verge/v2.0.4,或在全局扩展配置中添加global-ua: clash-verge/v2.0.4。 - 场景 B(尝试绕过对默认客户端标识的拦截):如果前文
curl对照测试显示携带clash-verge标识时报错,可尝试在输入框中改填其他兼容标识(如Clash.Meta或浏览器标识Mozilla/5.0)。注意:部分服务商后台若检测到纯浏览器 UA,可能会返回网页或 Base64 文本而非 YAML 格式,导致解析失败;若遇到此情况,请直接使用下一节的本地 YAML 导入法。
- 场景 A(解决 Hysteria2 等节点被过滤或无法拉取):据 其他问题 - Clash Verge Rev Docs 说明,若订阅或
- 在同一编辑窗口中,找到「更新间隔(Update Interval)」,将其设置为 360 分钟(即 ≥6 小时) 以上(据 订阅更新失败显示网络错误? - Clash版本库),保存后再点击卡片右上角的刷新图标。
终极兜底方案:浏览器另存为本地 .yaml 文件手动导入
假如你遇到了 订阅更新失败,使用clash代理更新也失败· Issue #5014 - GitHub 中描述的困境——客户端在线直连更新与代理更新双双失效,只要你的电脑浏览器(或连上手机热点后的浏览器)还能打开订阅链接,就可以用「本地 YAML 文件导入法」在 1 分钟内恢复节点连接:
- 获取正确的 Clash/Mihomo 订阅地址:登录你的服务商后台,复制明确标注为 「Clash」或「Mihomo (Clash Meta)」 的订阅链接(部分面板会在通用链接后附带转换参数,但不同服务商格式各异,请以服务商后台的专项复制按钮为准),粘贴到浏览器地址栏访问。
- 将配置内容另存为本地 .yaml 文件:
- 若浏览器直接触发文件下载,请将其保存到桌面,并确认文件后缀名为
.yaml或.yml(例如命名为local-sub.yaml)。 - 若浏览器直接在页面上展示出配置文本(开头通常包含
port:、mixed-port:或proxies:等字段),请按Ctrl + S(macOS 按Cmd + S),保存类型选「所有文件」,文件名填local-sub.yaml保存到桌面。 - 格式核验与隐私安全提醒:用记事本打开保存好的文件,确认里面是带缩进的 YAML 键值对(若是一整串无空格的字母数字,说明复制成了通用 Base64 订阅,需重新回后台复制 Clash 专用订阅)。同时请注意:据 隐私政策 - Clash Verge Rev Docs 说明,该 YAML 配置文件内包含你的个人订阅 Token、节点服务器地址、端口、密码与 UUID 等敏感凭据,请妥善保存在本地,切勿外传或直接上传到公开的 GitHub Issue 与论坛中!
- 若浏览器直接触发文件下载,请将其保存到桌面,并确认文件后缀名为
- 在 Clash Verge Rev 中新建本地配置:打开客户端进入「订阅(Profiles)」,点击顶部的「新建(New)」按钮。将「类型(Type)」从 Remote 切换为 「Local(本地)」,输入自定义名称,点击选择文件并导入桌面的
local-sub.yaml,点击保存。 - 激活配置并恢复远程同步:点击刚导入的本地配置卡片使其高亮激活(若切换后未生效、仍加载旧配置,可点击强制重载 Reload 或删除旧条目,参考 订阅更新失败显示网络错误? - Clash版本库),然后开启「系统代理」。
当本地配置成功连通网络后,你无需删除原来的远程(Remote)订阅卡片:直接右键点击原来的远程订阅卡片,选择「使用 Clash 代理更新」。此时由于本地已建立起可用的代理通道,原本无法直连拉取的远程订阅就能顺利更新,更新完成后再把激活卡片切回远程订阅即可。恢复连接后,如果你想检查当前配置文件的规则命中情况,可使用本站的 Clash 分流规则匹配测试 工具进行验证,或浏览 更多客户端排障指南。
声明:本站为独立的第三方客户端使用指南站,与 Clash Verge Rev、Mihomo 等开源项目及开发者无隶属关系。
常见问题
为什么勾选了“使用 Clash 代理更新”依然提示订阅更新失败?
因为“使用 Clash 代理更新”的前提是你当前客户端里已经有一个正在正常工作的代理节点。正如 GitHub Issue #5014 和 #3452 中记录的常见场景,当你原本的节点已经全部失效或未开启代理时,代理通道本身是断的,此时使用代理更新必然失败。请先关闭系统代理与 TUN 模式尝试直连更新,或通过浏览器下载 YAML 文件进行本地导入以恢复首个可用节点。
如何避免订阅链接因为更新太频繁可能被服务端限流?
部分用户在客户端中将自动更新间隔设置得过短(例如每 10 分钟或 30 分钟更新一次),高频请求可能触发远程服务器或 CDN 的频率限制,导致返回 4xx 错误或空文件。建议在 Clash Verge Rev 订阅卡片的「编辑信息」中,将更新间隔调整至 360 分钟(6 小时)或更长时间。
本地导入 .yaml 文件后节点能用,但怎么同步后续的远程节点更新?
本地(Local)类型的配置文件不会自动向远程服务器拉取新节点。当你通过本地导入恢复正常的代理连接后,不需要删掉原来的远程(Remote)订阅卡片,只需保持当前系统代理开启,在原来的远程订阅卡片上右键选择「使用 Clash 代理更新」。拉取成功后,再将激活状态切换回远程订阅卡片即可。
相关阅读
参考资料
- 订阅更新失败显示网络错误? - Clash版本库(clash-version.com)
- 其他问题 - Clash Verge Rev Docs(clashverge.dev)
- 最近clash 导入订阅经常无法成功到底是什么原因? - V2EX(v2ex.com)
- 订阅更新失败,使用clash代理更新也失败· Issue #5014 - GitHub
- [BUG] 订阅显示使用Clash代理更新也失败 #3452 - GitHub