FILE NO. C-007 / TROUBLESHOOTING / MANUAL

Clash 故障排查手册

本页是本站的系统化查阅手册,按症状分为八章。适用范围:Clash Plus、Clash Verge Rev、FlClash 等基于 mihomo 内核的客户端,以及仍在使用的旧内核客户端。排查思路通用,界面入口名称可能因客户端而略有差异。

与站内其他页面的分工:如果尚未完成安装与订阅导入,先按 配置教程 走完主线流程,再回到本页;本页假设客户端已安装、订阅已导入,专门处理"配好了但不正常"的情形。零散的一句话问答收录在 疑难解答;客户端安装包在 安装包页 按平台归档。

用法

先在下表定位症状,跳转对应章节。每章按"确认现象 → 缩小范围 → 处理"的顺序执行,不建议跳步。多数问题在前两步就能定位原因。

症状描述优先查阅
开启代理后所有网页都打不开,关闭后恢复DOC-01 / DOC-05
延迟测试全部显示超时或 -1DOC-02 / DOC-03
点击更新订阅报错,或订阅列表为空DOC-03
能上网,但速度明显低于预期DOC-04
部分网站能开、部分打不开,或指向错误页面DOC-05
客户端显示已连接,浏览器仍走直连DOC-06
客户端启动即退出、界面卡死DOC-07
手机端断流、后台失效、无法建立 VPNDOC-08

DOC-01

无法上网:开启代理后全部断网

定义:开启代理后,任何网站都无法访问;关闭代理后网络立即恢复。这类故障说明流量确实进入了 Clash,但没有被正确送出。排查按以下顺序执行。

1.1 先区分"全断"与"部分不通"

打开三类站点各测一次:一个中国大陆站点、一个海外站点、一个 IP 直连地址(如路由器管理页 192.168.x.1)。三类全部不通才属于本章范围;只有海外站点不通,转 DOC-02 检查节点;只有部分站点不通或跳转异常,转 DOC-05 检查 DNS 与规则。这一步花十秒,能避免后面走错方向。

1.2 检查代理模式与出站选择

确认当前模式。规则模式(Rule)下,若配置文件缺少兜底规则 MATCH,未命中的流量可能被丢弃;全局模式(Global)下,若选中的出站是一个失效节点,则所有流量都会失败;直连模式(Direct)下开启系统代理,流量绕一圈本机再直连,一般不会断网,但配置异常时可能出现回环。处理办法:先切到全局模式,手动选择一个延迟正常的节点,确认能否恢复。能恢复,说明问题出在规则或策略组,回到规则模式逐段检查;不能恢复,继续向下。

1.3 检查本地监听端口

Clash 默认在本机 7890 端口(混合端口)监听。若端口没有起来,系统代理指向的就是一个空地址,表现为全部断网。用命令确认监听状态:

# Windows(PowerShell 或 CMD)
netstat -ano | findstr 7890

# macOS / Linux
lsof -i :7890

无输出,说明内核没有成功监听:检查配置文件中 mixed-portport 字段,再看客户端日志里是否有 bind 失败的记录(常见原因是端口被其他程序占用,转 DOC-07 的端口冲突小节)。有输出但 PID 不是 Clash 进程,说明端口被占,修改配置换一个端口,或结束占用进程。

1.4 用 curl 绕过浏览器验证链路

浏览器自身缓存、插件、DoH 设置都可能干扰判断。用命令行直接走本地代理请求一个无内容探测地址:

curl -x http://127.0.0.1:7890 -I https://www.gstatic.com/generate_204

返回 HTTP/2 204HTTP/1.1 204,说明"本机 → Clash → 节点 → 目标"整条链路是通的,问题在浏览器或系统代理层,转 DOC-06;返回超时或连接被重置,说明节点侧不通,转 DOC-02。

1.5 查看运行日志

把日志级别调到 infodebug,复现一次访问,观察输出。三类典型记录:

注记

排查期间不要同时改多个变量。每改一处,复测一次 1.4 的 curl 命令,确认该项修改是否有效,再进行下一步。


DOC-02

节点超时:延迟测试全部或部分失败

定义:在客户端节点列表中执行延迟测试,结果显示超时、-1 或空白。先明确一点:延迟测试测的是"经过该节点访问某个测试 URL 的完整耗时",测试失败不一定等于节点失效,也可能是测试地址本身不可达。

2.1 全部超时的四个常见原因

  1. 订阅已过期或流量用尽。登录订阅提供方的用户面板确认账户状态。这是全部超时最高频的原因,先查它,不要先怀疑软件。
  2. 本机网络本身不通。关闭代理,直接访问任意大陆站点确认基础网络正常。基础网络断了,任何节点都会超时。
  3. 测试 URL 被本地网络拦截。部分客户端默认测试地址在某些网络环境下不可达,导致"节点其实可用但测试全红"。把测试地址改为 https://www.gstatic.com/generate_204http://cp.cloudflare.com/generate_204 后重测。
  4. 系统时间偏差过大。部分加密协议对时间敏感,本机时间与标准时间相差超过一定范围会导致握手失败。开启系统时间自动同步后重测。

2.2 部分超时:正常现象与处理边界

订阅里通常包含数十个节点,个别节点在个别时段超时属于常态,原因包括节点服务器维护、线路波动、区域网络管制变化。处理原则:

2.3 让策略组自动避开失效节点

手动选择节点的策略组在节点失效时不会自动切换。将常用策略组改为自动测速类型,可以显著减少"突然断了"的感知。示例:

proxy-groups:
  - name: "自动选择"
    type: url-test
    url: "https://www.gstatic.com/generate_204"
    interval: 300
    tolerance: 60
    proxies:
      - "节点A"
      - "节点B"
      - "节点C"

字段说明:interval 为重测间隔秒数,不建议低于 120,过于频繁的测速会产生额外请求;tolerance 为容差毫秒数,新节点延迟需比当前节点低出该值才切换,避免在两个延迟接近的节点间反复横跳。

2.4 延迟数值的正确读法

延迟测试走完整 HTTP 请求,数值受节点物理距离、协议开销、测试地址位置三重影响。经验参考:亚洲近距离节点几十到一百多毫秒,欧美节点两百到四百毫秒属正常区间。延迟低只代表握手快,不代表带宽大;下载速度问题转 DOC-04 处理。


DOC-03

订阅失败:导入报错与更新失败

定义:粘贴订阅链接后导入报错,或已有订阅点击更新时失败。订阅本质是一个通过 HTTP 拉取的远程配置文件,排查思路与排查"一个网址打不开"相同:先确认链接本身,再确认网络路径,最后确认内容格式。

3.1 确认链接本身有效

  1. 核对链接完整性。订阅链接通常很长且含 token 参数,从聊天工具复制时容易被截断或混入换行、空格。建议从提供方用户面板重新复制,不要转手多次。
  2. 确认链接类型。Clash 系客户端需要 Clash 格式(YAML)的订阅;部分提供方对不同客户端给不同链接,拿错格式会报"解析失败"。多数机场支持在链接后附加参数指定格式,具体以提供方说明为准。
  3. 在浏览器中直接打开链接。能看到一段 YAML 文本(以 proxies:port: 等字段开头),说明链接与内容都正常,问题在客户端侧;返回 404 或错误页,说明链接失效,找提供方重签。

3.2 拉取阶段失败的处理

链接有效但客户端更新报超时:订阅服务器本身可能在受干扰的网络路径上。两个处理方向:

# 直连拉取(把链接换成自己的,示例 token 为占位假值)
curl -I "https://example.com/api/v1/client/subscribe?token=xxxx"

# 经本地代理拉取
curl -x http://127.0.0.1:7890 -I "https://example.com/api/v1/client/subscribe?token=xxxx"

直连失败、走代理成功,说明订阅服务器直连不可达,开启"使用代理更新"即可;两者都失败,说明服务器侧异常,等待或联系提供方。

3.3 User-Agent 限制

部分订阅服务器按请求的 User-Agent 返回不同格式,或拒绝陌生 UA。浏览器能打开、客户端却解析失败时,可在客户端订阅设置中把 UA 手动改为 clashclash.meta 后重试。这一项在更换客户端后订阅突然失效的场景中尤其常见。

3.4 更新失败但旧配置仍可用

客户端会缓存上一次成功拉取的配置,订阅更新失败不影响继续使用旧节点。因此更新失败不必立即处理连接问题,但要注意:旧配置中的节点地址可能随提供方轮换而逐渐失效,表现为可用节点越来越少。尽快按本章 3.1–3.3 恢复更新能力。

警示

订阅链接等同于账户凭据,含有个人 token。不要粘贴到公开群组、论坛或截图中;怀疑泄露时,到提供方面板重置订阅地址。


DOC-04

速度慢:连接正常但带宽不达预期

定义:网页能开、视频能放,但速度明显低于本地宽带水平或以往体验。速度问题的变量最多,必须逐层隔离:本地网络 → 节点 → 协议 → 规则 → 目标站点。

4.1 建立基准:先测直连,再测代理

关闭代理,对大陆测速服务器跑一次测速,记录数值作为本地宽带基准;开启代理,选定一个节点,对同一目标或节点所在地区的测速点再跑一次。代理速度达到基准的一半以上,通常属于正常损耗区间;差距悬殊时继续向下排查。

4.2 节点侧因素

4.3 客户端与协议侧因素

rules:
  - AND,((NETWORK,UDP),(DST-PORT,443)),REJECT

4.4 规则侧因素:确认流量走向正确

速度慢的一个隐蔽原因是"本该直连的流量走了代理"。大陆站点绕道海外节点再回来,速度必然大幅下降。在客户端的连接面板查看当前活动连接,确认大陆域名命中 DIRECT、海外域名命中代理策略组。分流规则配置不当的,参阅站内文章 规则分流实战 校正。

4.5 本地环境因素

Wi-Fi 信号弱、路由器性能瓶颈、其他设备占用带宽,都会被误判为"节点慢"。用网线直连或靠近路由器复测一次,排除本地干扰。软路由/路由器上跑内核的用户,还需关注设备 CPU 占用——加密流量的吞吐受限于设备算力,低端设备百兆封顶属正常现象。


DOC-05

DNS 异常:解析错误、泄漏与部分站点打不开

定义:整体网络可用,但部分站点打不开、跳到错误页面,或检测工具显示 DNS 泄漏。DNS 是 Clash 故障中最不直观的一类,因为症状表现在"某些网站",根源却在解析层。

5.1 判断是否属于 DNS 问题

对打不开的站点执行:换用 IP 直连能通(如果该站支持)、或在客户端日志中看到该域名解析出的 IP 明显异常(如解析到保留地址、明显不属于目标服务商的地址段),即可判定为解析问题。另一个典型信号:开启代理后某网站提示"您所在地区不可用",但节点地区明明正确——多为 DNS 请求走了直连,暴露了真实位置。

5.2 理解 fake-ip 与 redir-host

Clash 的 enhanced-mode 有两种取值。fake-ip 模式下,内核对域名请求即时返回一个 198.18.0.0/16 段的虚假地址,真实解析推迟到出站时进行,优点是响应快、天然防污染,缺点是个别依赖真实 IP 的程序(局域网发现、部分游戏平台)会异常;redir-host 模式返回真实解析结果,兼容性好但更依赖上游 DNS 的质量。一般桌面与移动端推荐 fake-ip,配合过滤名单排除局域网域名。

5.3 可直接套用的 dns 段配置

dns:
  enable: true
  listen: 0.0.0.0:1053
  enhanced-mode: fake-ip
  fake-ip-range: 198.18.0.1/16
  fake-ip-filter:
    - "*.lan"
    - "+.local"
    - "+.msftconnecttest.com"
  nameserver:
    - https://223.5.5.5/dns-query
    - https://120.53.53.53/dns-query
  fallback:
    - https://1.1.1.1/dns-query
    - https://8.8.8.8/dns-query
  fallback-filter:
    geoip: true
    geoip-code: CN

结构说明:nameserver 负责日常解析,填国内 DoH 保证大陆域名解析快且准;fallback 负责疑似被污染域名的二次解析,填海外 DoH;fallback-filter 以 GeoIP 判定——解析结果不属于 CN 地址段时,采用 fallback 的结果。各字段的完整原理与劫持场景,参阅站内文章 Clash DNS 配置详解

5.4 DNS 泄漏的确认与处理

  1. 经代理访问 DNS 泄漏检测站点,查看列出的解析服务器归属。全部为节点所在地区的服务器为正常;出现本地运营商服务器即为泄漏。
  2. 确认泄漏来源。常见来源三个:浏览器自带 DoH(设置里独立配置了 DNS over HTTPS,绕过了 Clash)、系统代理模式下 UDP 53 请求不经代理、IPv6 解析旁路。
  3. 逐项处理:关闭浏览器内置安全 DNS;开启 TUN 模式让 DNS 请求也被接管(见 DOC-06);配置中设置 ipv6: false 或补全 IPv6 规则。

5.5 GeoIP 数据库过旧导致的误判

规则中的 GEOIP,CN,DIRECT 依赖本地 GeoIP 数据库。数据库长期未更新时,新启用的地址段会被误判,表现为个别大陆站点错误走代理、或个别海外站点错误直连。多数客户端在设置中提供 GeoIP/GeoSite 数据库更新入口,执行一次更新并重启内核即可。更新失败时,先确认当前代理可用,再用"经代理更新"的方式重试。


DOC-06

系统代理不生效:客户端在跑,流量却直连

定义:客户端显示运行正常、节点延迟正常,但浏览器或应用的流量并未经过代理。核心认知:"系统代理"只是操作系统层的一个建议性设置,应用可以遵守,也可以无视。这决定了本章的排查框架。

6.1 确认系统代理设置已写入

先确认客户端的"系统代理"开关处于开启状态,再到操作系统层核对:Windows 在"设置 → 网络和 Internet → 代理"查看手动代理是否指向 127.0.0.1:7890;macOS 在"系统设置 → 网络 → 详细信息 → 代理"查看 HTTP/HTTPS 代理项。客户端开了但系统里没写入,常见原因是权限不足或被其他代理软件抢占了设置,重启客户端或退出冲突软件后重试。

6.2 哪些流量天然不走系统代理

流量类型是否遵守系统代理处理办法
主流浏览器遵守无需处理
命令行工具(git、curl、包管理器)多数不遵守设置环境变量,见 6.3
部分桌面应用(自带网络栈)不遵守应用内单独设代理,或开 TUN
Windows UWP 应用/商店应用受回环限制解除 loopback 限制,或开 TUN
系统服务、后台更新不遵守开 TUN 模式

6.3 命令行工具的代理配置

# macOS / Linux(当前终端会话生效)
export https_proxy=http://127.0.0.1:7890
export http_proxy=http://127.0.0.1:7890
export all_proxy=socks5://127.0.0.1:7890

# Windows PowerShell
$env:HTTPS_PROXY="http://127.0.0.1:7890"
$env:HTTP_PROXY="http://127.0.0.1:7890"

# git 单独配置(全局)
git config --global http.proxy http://127.0.0.1:7890

验证方式:执行 curl -I https://www.gstatic.com/generate_204,在客户端连接面板看到来自 curl 的连接记录即为生效。

6.4 用 TUN 模式取代系统代理

TUN 模式创建一块虚拟网卡,在系统路由层接管全部流量,不依赖任何应用的配合,是解决"不遵守系统代理"问题的根本方案。开启要点:桌面端需授予管理员/系统扩展权限;首次开启需安装服务组件(客户端会引导);开启后建议关闭系统代理开关,避免双重代理。原理与分平台步骤,参阅站内文章 TUN 模式原理与开启步骤

6.5 浏览器插件与 PAC 的冲突

浏览器安装过 SwitchyOmega 等代理插件时,插件设置的优先级高于系统代理。表现为系统代理明明正确,浏览器仍按插件旧规则走。处理:将插件切到"系统代理"情景模式,或直接停用插件。同理,系统里残留的 PAC 自动配置脚本地址也会覆盖手动设置,排查时把"自动检测设置"与"使用设置脚本"一并关闭。


DOC-07

客户端崩溃:启动失败、闪退与界面卡死

定义:客户端无法启动、启动后立即退出、内核反复重启,或界面长时间无响应。这类问题九成落在四个原因上:配置语法错误、端口冲突、权限不足、安装文件损坏。按命中率从高到低排查。

7.1 配置文件语法错误

YAML 对缩进与冒号后的空格极其敏感,手工编辑配置后内核起不来是最常见的崩溃原因。定位方法:查看客户端日志(Clash Verge Rev 的应用日志、各客户端设置中的日志入口),内核会在报错中给出行号,例如 yaml: line 42: mapping values are not allowed in this context。处理:按行号修正缩进,或临时切回未改动过的订阅配置验证是否恢复。改动配置前先复制备份,是成本最低的保险。

7.2 端口冲突

7890(代理)、9090(外部控制)等端口被其他程序占用时,内核启动即失败。典型冲突方:另一个未完全退出的 Clash 实例、其他代理软件、开发调试服务。定位与处理:

# Windows:找到占用 7890 的进程 PID,再按 PID 查进程名
netstat -ano | findstr 7890
tasklist | findstr 

# macOS / Linux
lsof -i :7890

确认占用方后,结束该进程,或在配置中改用其他端口(同时更新系统代理指向)。多个 Clash 系客户端不要同时运行,卸载弃用的那个。

7.3 权限与安全软件

7.4 安装损坏与残留冲突

升级失败、磁盘异常都可能损坏程序文件。处理顺序:先卸载,手动清理残留目录(注意:配置与订阅一般存放在用户数据目录,与程序目录分离,清理程序目录不会丢配置;若要彻底重置,再删用户数据目录),然后从 安装包页 重新下载安装。反复崩溃且无明确日志线索时,换用同内核的另一客户端交叉验证——例如 Clash Verge Rev 崩溃而 Clash Plus 正常,可判定问题在客户端本体而非配置与网络。

备份

重装前导出订阅链接列表与手改过的配置文件。订阅链接可随时从提供方面板重新获取,但本地自定义规则不备份就会丢失。


DOC-08

移动端专项:Android 与 iOS 的平台特有问题

移动端客户端(Android 端的 Clash Plus、Clash Meta for Android、FlClash;iOS 端的 Clash Plus)统一通过系统 VPN 接口接管流量,故障模式与桌面端有明显差异,单列一章。

8.1 Android:VPN 无法建立

  1. 确认系统 VPN 授权。首次启动会弹出"连接请求"授权框,误点拒绝后需到系统设置的 VPN 管理页删除该应用的 VPN 配置,重新启动客户端触发授权。
  2. 检查 VPN 互斥。Android 同一时刻只允许一个应用持有 VPN 通道,其他 VPN 类应用(含部分安全软件的"网络保护"功能)在运行时,Clash 无法建立连接。停用冲突应用后重试。
  3. 部分定制系统(工作资料、儿童模式)限制 VPN 权限,需在对应管理入口放行。

8.2 Android:后台被杀与断流

国产定制系统的激进省电策略是移动端断流的首要原因,表现为锁屏一段时间后网络中断、通知栏图标消失。处理清单:

8.3 Android:分应用代理

客户端设置中的"分应用代理"(Per-App Proxy)可指定哪些应用走 VPN。两种模式:白名单(仅列表内应用走代理)与黑名单(列表内应用绕过)。银行类应用对 VPN 敏感时,加入绕过列表可解决其风控报错;反过来,发现某应用始终直连,先检查它是否被列入了绕过名单。修改分应用设置后需重启 VPN 生效。

8.4 iOS:Clash Plus 使用要点

iOS 端通过 App Store 安装 Clash Plus,基于系统 Network Extension 框架运行。平台特有注意点:

8.5 移动端订阅更新失败

手机端更新订阅报错的排查与 DOC-03 相同,补充两点移动端特有因素:蜂窝网络下部分运营商对陌生域名的解析与连接策略更严格,切到 Wi-Fi 重试可区分;省电模式会限制后台网络请求,前台手动更新不受影响,但"自动更新订阅"任务可能长期未执行,导致节点悄然过期——发现节点批量失效时,先手动更新一次订阅再测。


END OF FILE / C-007

按上述八章仍未解决的问题,建议携带三项信息求助:客户端名称与平台、复现步骤、关键日志片段(隐去订阅链接与 token)。零散高频问答见 疑难解答;从零配置回到 配置教程;更换或升级客户端到 安装包页,全平台首推 Clash Plus。

下载Clash