订阅 · 更新 · 连接 · 内核,四大方向全梳理

Clash 常见问题
订阅导入失败、更新报错、节点连不上,逐一排查

大部分「用不了」其实是同一类问题换了种表现:订阅链接返回了登录页、内核被安全软件拦了、TUN 和系统代理同时开着。本页把所有高频故障按发生环节拆成四组,每组给出可复现的判断方法与对应解法,遇到问题时先定位环节,再按步骤排除。

订阅导入异常 订阅更新报错 节点连接失败 客户端与内核
四组分类排查 附命令行判断方法 含 os error 恢复方案 判断先于解决

先定位环节,再对症下药

同一句「订阅失败」可能出现在三个完全不同的环节。先分清楚问题出在哪一段,能省下大半折腾的时间。

导入阶段

订阅链接能粘贴进去,但客户端拉回来的内容不对,或者导入后配置列表里看不到条目。

  1. 1浏览器直接打开订阅链接,看返回内容
  2. 2确认返回的是 YAML 而非 HTML
  3. 3检查是否命中登录页或 403 页面

更新阶段

订阅条目还在,但点击更新时报错,或者更新后节点数量明显变少、配置变成空文件。

  1. 1先看客户端的具体报错文字
  2. 2检查当前网络能否访问订阅域名
  3. 3确认订阅是否已过期或被限流

连接阶段

配置加载正常,节点列表也在,但测速全红,或者打开网页一直在转圈、提示连接超时。

  1. 1单独测一下节点延迟看是否可用
  2. 2确认系统代理与 TUN 的实际状态
  3. 3核对订阅是否在有效期内

订阅导入异常 从链接粘贴到生成配置,这一段的常见坑

最常见的原因是订阅链接返回的根本不是 YAML,而是登录页、错误页或 403 提示。判断方法很简单:用浏览器直接打开这条订阅链接,观察页面返回的内容。

  • 返回一大段以 proxies: 开头的纯文本 → 链接正常,问题出在客户端
  • 返回一个网页、登录框或「请先登录」提示 → 链接失效或令牌过期
  • 返回 403、404 或 Cloudflare 拦截页 → 订阅域名被限流或封禁

如果不想打开浏览器,也可以用命令行查看响应前几行,判断更快:

# 查看订阅链接返回内容的前 5 行
curl -sL "你的订阅链接" | head -n 5

返回 <!DOCTYPE html> 或 <html 开头的,基本都是网页而不是配置,需要回去找机场核对订阅地址与令牌状态。

不一定。先按顺序检查这三处:

  • 客户端类型是否匹配:部分机场会分别提供 Clash、SS、V2Ray 三种订阅链接,贴错类型时客户端可能不报错,但也不会生成条目
  • 订阅是否成功拉取:部分客户端会静默失败,需要在订阅页面手动点一次「更新」看是否弹出提示
  • 本地配置目录是否可写:权限不足时新配置无法落盘,容易表现为「导入后消失」
如果是用「一键导入」链接(clash://install-config?url=...)触发的,需要确认系统已正确把这类链接关联到客户端。浏览器没有弹出「是否打开客户端」的提示,通常意味着关联丢失,可以改用粘贴链接的方式导入。

三个方向排查:

  • 目录是否放对:默认路径是 macOS / Linux 的 ~/.config/clash/ 或 Windows 的 %USERPROFILE%\.config\clash\。部分客户端会使用自己的私有目录,具体路径可在设置页查看
  • 文件扩展名是否为 .yaml 或 .yml:改了扩展名的文件通常不会被识别
  • YAML 语法是否合法:缩进使用了 Tab 而非空格、冒号后缺少空格等,都会导致解析失败

放好文件后,需要在客户端里手动刷新一次配置列表,仅复制文件不会自动出现条目。

这类报错通常出现在三个场景:

  • 系统时间不正确:证书校验依赖准确的时间,系统时钟偏差过大会导致全部 HTTPS 请求被拒
  • 代理本身没开但订阅域名被墙:先关掉客户端,用直连访问订阅域名看能否通;如果不通,说明必须先有可用网络才能拉订阅
  • 中间设备做了 SSL 拦截:部分企业网络或安全软件会替换证书,导致握手失败
不要在客户端里关闭证书校验来「绕过」这个问题。关闭后会显著增加中间人攻击风险,应该先解决网络或时间同步问题。

订阅更新报错 已经跑通的订阅,突然更新不了

按从外到内的顺序排查,效率最高:

  • 第一步 · 网络连接:先确认当前能正常访问订阅域名。可用浏览器打开订阅链接,或换一个网络环境(比如手机热点)测试
  • 第二步 · 订阅链接有效性:确认令牌未过期、流量未耗尽、未被机场限流。这几项服务端状态变化时,客户端只会显示笼统的「下载失败」
  • 第三步 · 安全软件拦截:部分杀毒软件或防火墙会把订阅更新视为可疑网络行为,静默阻断。临时关闭后重试可以快速验证
如果客户端有「日志」页面,优先看那里的详细报错文字。「下载失败」只是一个笼统提示,日志里通常会写清是 DNS 解析失败、连接超时还是 HTTP 状态码异常。

更新后节点减少,通常不是客户端 bug,而是服务端订阅内容发生了变化。常见原因:

  • 机场下架了部分线路,替换成新节点
  • 套餐到期或流量耗尽,订阅被降级为少量节点
  • 订阅返回了错误页,被客户端当成"空配置"覆盖了旧文件

判断方式:用浏览器打开订阅链接,对比一下当前返回的节点数量。如果浏览器里显示的节点也是变少后的数量,那就是机场侧的调整;如果浏览器里正常、客户端里却是空的,说明客户端解析出了问题,可以尝试重新导入。

建议在客户端设置里保留「自动备份配置」选项,更新失败时可以快速回滚到上一个可用版本,不至于因为一次错误的订阅更新导致客户端完全无法使用。

可以缓解,但无法完全避免。订阅更新本质上是一次配置重载,重载时既有连接会被重新调度,因此出现短暂中断是正常现象。可以从两方面降低影响:

  • 把自动更新间隔调长一些,比如从 6 小时改为 24 小时。节点不频繁变化时,没必要更新太勤
  • 把更新安排在你不常用网络的时段,比如凌晨
  • 使用支持「订阅与规则分离」的客户端(如 Clash Verge Rev),更新节点订阅时不动规则文件,重载范围更小

这类「重启就好」的现象,通常指向客户端内部状态没有及时刷新。可能的原因:

  • 上一次更新拉取到一半时被中断,本地留下了残缺的临时文件
  • DNS 缓存过期后,客户端仍在使用旧的解析结果
  • 客户端的后台更新任务出现了状态卡死

重启客户端会清理这些临时状态,因此问题会「自动消失」。如果反复出现,可以在客户端的设置中关闭自动更新,改用手动更新,避免后台任务互相冲突。

节点连接失败 配置都在,但就是连不上、连不稳

按这个顺序看,可以覆盖九成情况:

  • 先看订阅是否过期:这是最常见的原因。过期后节点列表还在,但所有节点都无法连接。在机场后台或订阅页面确认剩余天数与流量
  • 再试手动切换节点:如果某个节点挂了,换一个还能用的节点通常立刻恢复。如果所有节点全红,问题不在单个节点
  • 确认系统代理与 TUN 的实际状态:有时候开关显示已开启,但系统层面的接管并未真正生效
测速本身依赖网络。如果当前处于完全断网状态,测速也会全红。可以先关掉客户端的代理,确认基础网络正常,再回来测速。

「开关显示已开」不代表流量真的经过 Clash。分三步确认:

  • 查连接日志:打开客户端的「连接」页面,看访问境外站点时是否有新记录出现。没有记录,说明请求根本没有经过客户端
  • 核对模式:确认当前是「规则」模式而不是「直连」。直连模式下所有请求都会绕过代理发出
  • 浏览器代理设置:部分浏览器使用独立代理设置或安装了 SwitchyOmega 之类的扩展,可能覆盖了系统代理

如果怀疑是接管范围的问题,可以临时切到 TUN 模式验证一下。TUN 能接管浏览器,说明问题出在系统代理这一层。

「开 TUN 没网、关 TUN 有网」几乎可以确定是 TUN 接管链路本身出了问题。按以下顺序处理:

  • 先确认系统代理已关闭:系统代理与 TUN 同时开启会造成流量重复接管,这是最常见的诱因
  • 检查虚拟网卡驱动:Windows 上打开「网络连接」,看是否有一张 Clash 相关的虚拟网卡。没有的话说明驱动未安装成功,需要重新授权
  • 排查网卡冲突:系统里已有的 VPN、虚拟机网卡(VMware、VirtualBox)可能与 TUN 抢路由,临时禁用其他虚拟网卡后重试
  • 查看 DNS 配置:TUN 模式下如果 DNS 指向了不可达的地址,会出现「连上了但解析不了」的情况,表现为完全没网

通常不是节点问题,而是分流规则或接管范围的问题。具体分两种情形:

  • 浏览器能开、游戏不能:游戏通常不读取系统代理,需要 TUN 模式才能被接管
  • 国内站点正常、境外站点不行:检查规则里对应域名的走向,看是否被匹配到了 DIRECT。可以在连接日志里看到每条请求命中的规则
  • 命令行工具不能:curl、wget 等工具默认不读取系统代理,需要设置环境变量或在 TUN 模式下运行
在连接日志里逐条查看「规则」与「节点」两列,就能明确看到每条请求走了哪条规则、从哪个节点出去。这是判断分流问题最直接的方法。

间歇性断线的原因比较杂,可以从这几个方向逐一排除:

  • 节点本身不稳定:换一个节点试试,如果换了就好,说明是线路问题
  • 系统休眠唤醒后未恢复:部分客户端在系统从睡眠唤醒后需要重新建立连接,可以检查是否有「唤醒后自动重连」选项
  • 安全软件周期性扫描:某些杀毒软件会定时扫描网络连接,触发代理断开
  • 路由器或运营商侧会话回收:长时间闲置的连接可能被中间设备清理,需要在客户端开启心跳或保持活动

如果断线后连接日志里出现大量重试记录,说明客户端一直在尝试重连但失败了,此时更值得排查节点或网络侧的问题。

客户端与内核异常 启动失败、文件缺失、权限问题

这个报错几乎都指向同一个原因:内核文件被安全软件当成威胁隔离或删除了。Mihomo 内核带有网络代理能力,部分杀毒软件会对它产生误报,把它从程序目录里移走。客户端启动时找不到内核文件,就会抛出 os error。

恢复步骤如下:

  • 打开杀毒软件的隔离区:查看被隔离的文件列表,找名称包含 mihomo、clash 或 verge 的条目
  • 还原并加白名单:把文件从隔离区还原,然后把客户端安装目录加入杀毒软件的白名单或排除列表
  • 重新下载安装包:如果隔离区里找不到,直接重新下载客户端覆盖安装即可,内核文件包含在安装包内
  • 重新启动客户端:确认内核能正常加载,界面不再报错
不建议为了让它运行而整体关闭杀毒软件。正确的做法是添加排除项,只放行客户端目录,其余防护继续保留。

启动即崩溃,通常与配置文件或内核权限有关。按下面顺序排查:

  • 换一个配置文件试试:用客户端自带的默认配置启动。如果默认配置能跑起来,说明问题在当前使用的订阅配置里
  • 检查 YAML 语法:手动改过的配置文件最容易出现缩进问题。YAML 只接受空格缩进,混入 Tab 会导致解析崩溃
  • 查看崩溃日志:多数客户端会在配置目录下生成日志文件,里面会写明崩溃前的最后一步操作
  • 确认内核版本匹配:手动替换过内核文件的场景下,内核版本与客户端不匹配也会导致启动失败

这是 macOS 的 Gatekeeper 安全机制,不是文件损坏。有两种放行方式:

  • 通过系统设置放行:打开「系统设置 → 隐私与安全性」,页面下方会出现一条被拦截的提示,点击「仍要打开」即可
  • 用命令行移除隔离属性:在终端执行下方命令,之后就能正常打开
# 移除应用的隔离属性(替换为实际路径)
sudo xattr -dr com.apple.quarantine /Applications/ClashX.app
执行前请确认应用来源可靠。隔离属性是系统识别「文件来自网络」的标记,移除后系统不再拦截该应用,因此这一步应当只对从官方渠道获取的安装包执行。

配置是否丢失取决于客户端更新时是否清理了配置目录。按以下顺序尝试恢复:

  • 查看配置目录是否还在:多数客户端更新时不会删除 ~/.config/clash/ 下的文件,先确认目录里的 YAML 是否完好
  • 重新导入订阅:如果只是配置列表空了但订阅链接还在,重新粘贴一次即可,节点会自动同步回来
  • 检查是否有自动备份:部分客户端会在配置目录下生成 backup 文件夹或时间戳命名的备份文件
养成习惯:把订阅链接单独记在密码管理器里,自定义规则文件另存一份到云端。即便本地配置全丢,也能在几分钟内重建。

常见报错信息与对应原因速查

把客户端弹出的报错文字与下表对照,能更快锁定问题方向。表中列出的是最典型的几种表现。

报错 / 表现
可能原因
处理方向
解析失败 / 返回 HTML
订阅链接返回登录页、403 或错误页
用浏览器打开订阅链接,核对令牌与订阅状态
os error / 找不到系统文件
内核文件被杀毒软件隔离或删除
从隔离区还原并加白名单,或重新安装
测速全红 / 节点超时
订阅过期、节点不可用或基础网络断开
先确认订阅状态,再切换节点,最后检查网络
开 TUN 后完全没网
与系统代理冲突、虚拟网卡驱动缺失或路由冲突
关掉系统代理、检查虚拟网卡、禁用其他 VPN 网卡
下载失败 / 一直转圈
网络不通、链接失效或被安全软件拦截
按网络 → 链接 → 安全软件顺序排查
更新后配置变空
订阅返回错误页被当作空配置覆盖
浏览器核对返回内容,重新导入订阅
证书错误 / SSL handshake failed
系统时间不准、订阅域名被墙或存在 SSL 拦截
同步系统时间,确认直连能否访问订阅域名
部分应用不走代理
应用不读取系统代理,或规则命中 DIRECT
改用 TUN 模式,或在连接日志确认命中的规则

「找不到系统文件 os error」是怎么来的

Clash Verge Rev 依赖一个独立的内核文件来实际处理网络流量。这个文件带有代理能力特征,容易被部分杀毒软件误判为风险程序并自动隔离。文件一旦消失,客户端启动时就找不到内核,于是抛出 os error。

这不是客户端本身的缺陷,也不是配置问题,本质上是安全软件与代理工具之间的误报冲突。处理方法并不复杂,关键是要把客户端目录加入排除列表,而不是整体关闭防护。

  • 报错通常出现在启动瞬间,界面还没加载出来就弹窗
  • 隔离区里能看到被移除的内核文件,名称含 mihomo 或 clash
  • 重新安装客户端可以临时恢复,但不加白名单还会再次被隔离
1

打开杀毒软件的隔离区

在安全软件主界面找到「隔离区」「病毒查杀记录」或「已阻止的项目」,查看被处理的文件列表。

2

还原被隔离的文件

找到名称包含 mihomo、clash 或 verge 的条目,选择「还原」或「信任」,让它回到原本的位置。

3

把客户端目录加入白名单

在安全软件的「排除项」「信任区」里,把 Clash Verge Rev 的安装目录整个加进去,避免下次更新时再次被误伤。

4

重新下载安装包覆盖安装

如果隔离区里已经找不到文件,直接重新下载安装包覆盖安装即可,内核文件包含在安装包内,装完就能恢复。

按上面步骤仍没解决?

可以先回到配置教程确认基础流程是否正确,或到官方仓库的 Issue 区检索关键词——大部分报错都有人遇到过,带上客户端的完整日志提问,通常能更快得到回复。