Clash 节点超时、测速失败怎么办:从订阅更新到 DNS 的排查顺序

节点全部超时或个别连不上时,按订阅有效性、系统时间、端口占用、DNS 模式、协议参数的顺序逐项排查,快速定位问题出在本机还是节点。

先分清:测速失败、节点不通与规则未命中

不要一看到 timeout 就重装客户端。测速结果只说明:内核未在指定时间内,通过选定节点完成对测试地址的请求。测试地址不可达、节点连接失败、DNS 解析异常,都可能得到相同的超时结果。先判断失败范围,再动配置。

现象 优先检查 验证方法
所有节点同时超时 订阅状态、本机网络、时间与公共配置 确认内核运行,再换手机热点复测
只有一两个节点超时 对应服务器、端口、协议参数 保持其他设置不变,切换到可用节点对照
测速失败但网页可用 测试地址与测试超时设置 查看网页连接实际使用的节点与规则
测速正常但网页打不开 系统代理、策略组、DNS 与目标站点 查看连接面板是否出现该网页请求

保留一个可对照的现场

  1. 记下客户端版本、内核名称与版本、当前配置名称,以及故障发生时间。
  2. 保存配置副本。截图记录当前代理模式、策略组选择、系统代理和 TUN 开关。
  3. 挑选一个节点、一个测试地址和一个实际网页,后续每次只修改一个设置。
  4. 打开客户端的「日志」和「连接」页面。不同客户端入口名称可能不同,以实际界面为准。

测速单位通常是毫秒,表示该次测试请求的耗时,不是下载带宽。把超时阈值从 3000 毫秒临时改为 10000 毫秒,可以判断请求是否只是建立较慢;这两个数值是诊断设置示例,不代表实测性能,也不能修复失效节点。

第一步:确认订阅有效,且新配置已启用

先进入客户端的「订阅」或「配置」页面,执行一次手动更新。确认更新完成时间发生变化,再检查当前启用的配置是不是刚更新的那一份。列表里存在新配置,不等于内核已经加载它。

根据更新结果分支处理

  • 返回 401 或 403:检查订阅地址是否完整、访问令牌是否更换,以及订阅账户状态。具体含义以服务端提示为准。
  • 返回 404:核对路径是否过期,重新从原订阅管理页面复制地址,避免使用旧书签。
  • 返回 200 但导入失败:查看响应是否实际为登录页或错误网页。HTTP 请求成功,不等于返回了可用配置。
  • 提示 YAML 解析错误:检查缩进、字段格式和客户端支持的订阅格式。不要把单个节点链接直接当作完整配置文件加载。
  • 下载订阅时超时:检查更新请求是否依赖当前失效的代理。若客户端提供订阅更新代理选项,可临时切换请求方式后重试。

更新后还要核对节点名称、数量与策略组成员是否符合预期。服务端可能替换节点地址,本地覆盖规则也可能把新节点过滤掉。若配置显示加载失败,应先解决加载错误,不要继续反复点击测速。

第二步:校准系统时间,排除基础网络故障

确认设备能正常联网,再检查系统日期、时间与自动同步状态。证书校验依赖准确时间,部分认证机制也对时间偏差敏感。时区显示不同不一定是故障,关键是系统实际时间是否准确。

  • Windows:打开「设置」→「时间和语言」→「日期和时间」,检查「自动设置时间」,再执行「立即同步」。
  • macOS:打开「系统设置」→「通用」→「日期与时间」,检查自动设置日期与时间的选项。
  • 安卓:进入系统设置中的「日期和时间」,启用自动设置时间;菜单位置随系统版本和设备而异。

如果日志出现 certificate has expired 或 certificate is not yet valid,先核对本机时间,再检查服务端证书有效期。不要直接关闭证书验证来绕过报错,那会隐藏真正的问题并降低连接安全性。

用网络切换判断故障边界

保持同一节点和配置,把电脑从当前网络切换到手机热点再测一次。如果热点可用而原网络不可用,应优先检查原网络的访问限制、认证页面与路由器设置。若两个网络都失败,再继续检查本机与节点。网络切换只能缩小范围,不能单凭一次结果断定服务器故障。

第三步:检查内核运行、端口占用与系统代理

确认客户端界面显示内核运行正常。图形窗口已打开,不代表 mihomo 已成功启动。日志中的 address already in use 通常表示监听地址或端口被占用;应先处理启动错误,再测试节点。

核对实际监听端口

mixed-port 同时提供 HTTP 与 SOCKS5 代理入口。下面以本机混合端口 7890 为例;实际端口应从客户端设置或当前生效配置读取,不要把示例值当作所有客户端的默认值。

# 配置片段示例,不是完整配置
mixed-port: 7890
allow-lan: false

在 Windows 命令提示符中检查监听情况:

netstat -ano | findstr LISTENING | findstr :7890

在 macOS 或具备相应工具的 Linux 系统中检查:

lsof -nP -iTCP:7890 -sTCP:LISTEN

若端口被其他进程占用,先通过进程编号确认程序身份,再正常退出不需要的程序,或为 Clash 修改端口。不要直接结束未知系统进程。修改后,还要同步更新应用手动填写的代理地址。

区分本地代理入口与远端节点

在 Windows 中,可用以下命令显式经过本地 HTTP 代理发起请求。测试地址仅用于说明命令结构,请换成你确认可访问的 HTTPS 地址进行对照。

curl.exe -I --proxy http://127.0.0.1:7890 --connect-timeout 10 --max-time 20 https://example.com/

在 macOS 或 Linux 中,把命令开头的 curl.exe 改为 curl。如果立即提示无法连接 127.0.0.1:7890,优先检查本地监听与端口。如果请求已进入内核,再结合连接面板确认最终走了哪个策略和节点。显式设置代理只证明请求进入代理入口,不保证规则一定选择远端代理。

显式代理测试可用、浏览器却不可用时,再检查客户端「系统代理」开关、浏览器独立代理设置,以及其他网络工具是否覆盖系统代理。TUN 模式还涉及服务权限和路由,不宜在这一阶段与系统代理一起反复切换。

第四步:按服务器域名与目标域名分别检查 DNS

DNS 故障至少要分两处看:一处是把节点的服务器域名解析成地址,另一处是解析准备访问的网站域名。前者失败,代理连接可能根本没有建立;后者失败,则可能出现节点测速正常、特定网页打不开的情况。

先检查节点服务器域名

从当前配置查看节点的 server 字段。若是域名,可用 nslookup 或 Resolve-DnsName 检查系统解析结果。命令中应填写真实服务器域名,不要把订阅链接或带路径的网址整段填进去。

  • 系统解析失败、客户端也报解析错误:先检查本机 DNS 与网络连通性。
  • 系统解析正常、客户端解析失败:检查内核使用的 DNS 上游及其访问方式,两者未必使用同一条解析路径。
  • 配置了加密 DNS:确认其端点本身能够访问,并注意端点域名也可能需要引导解析。
  • 使用 mihomo:检查适用版本中的 proxy-server-nameserver 设置;它用于指定代理服务器域名的解析上游,具体支持情况以当前内核配置文档为准。

再检查 Fake-IP 与应用缓存

在 Fake-IP 模式下,DNS 返回合成地址可能是正常行为。常见配置使用 198.18.0.0/16 范围,看到这类地址不能直接认定解析错误。要结合内核连接记录,确认应用请求是否被正确接管,以及域名映射是否仍然有效。

浏览器的安全 DNS、应用内置解析与系统 DNS 可能走不同路径。如果只有某个应用异常,先检查该应用的 DNS 设置,而不是立即重写整份配置。临时关闭应用自定义解析用于对照后,记下结果,再决定长期设置。

每次只调整一个 DNS 选项,重新加载配置后关闭并重新打开测试应用。Windows 可使用 ipconfig /flushdns 清理系统 DNS 缓存,但它不会自动清空浏览器自己的缓存,也不会替代内核的缓存管理。若切换 Fake-IP 与其他模式,旧连接和旧映射也需要一并留意。

第五步:逐项核对协议参数与传输条件

只剩个别节点失败时,重点核对这些节点本身。先从订阅源重新更新,避免手动拼接参数。Clash 图形客户端与内核不是同一层:界面能显示某种节点类型,不代表当前运行的内核版本一定支持该类型或全部字段。

检查项 具体核对内容 处理方向
服务器与端口 server、port 是否与当前订阅一致 更新配置,确认服务端监听状态
身份认证 密码、UUID、加密方式是否匹配 重新导入,避免复制时混入空格
TLS 参数 server name、证书域名、设备时间 按服务端要求填写,保持证书验证
传输层参数 WebSocket 路径与 Host、gRPC 服务名等 使用完整参数,不凭节点名称猜测
内核兼容性 节点类型、扩展字段、内核版本 确认支持范围,更新后重新验证

基于 QUIC 的节点传输通常依赖 UDP。若当前网络限制了 UDP,修改本地 HTTP 代理端口不能解决远端传输问题。可换网络对照,或测试服务端提供的另一种传输类型。普通 TCP 端口连通测试也不能证明 UDP 节点可用。

即使 TCP 连接成功,也只是说明连接建立到某个监听端口。认证失败、TLS 握手错误、传输路径不匹配,仍然会让代理不可用。不要把「端口能连」当作整个协议工作正常的结论。

最后验证:结合规则、日志与实际请求收敛问题

修复后不要只看测速颜色。打开一个实际网页,在连接面板确认目标域名、命中规则、策略组和最终节点。规则模式可能把测试网页分配为 DIRECT,此时网页能打开不能证明选中的代理节点可用。

用日志定位失败阶段

  • connection refused:目标明确拒绝了连接。检查地址、端口和服务是否监听。
  • i/o timeout:请求在某阶段未及时完成。结合前后日志判断是解析、连接还是握手超时。
  • no such host:优先检查域名拼写与解析链路。
  • authentication failed:核对认证参数和账户状态,不要继续只换 DNS。
  • unsupported proxy type:检查配置类型与内核兼容性,先解决加载问题。

确需临时提高日志级别时,只记录一次可复现操作,随后恢复日常级别。排查结束后恢复临时更改的测试地址、代理模式和应用 DNS 设置,保留真正有效的修改,避免把诊断状态当成长期配置。

提交问题时保留这些信息

提供客户端与内核版本、操作系统、失败范围、网络切换结果、报错时间,以及脱敏后的相关日志片段。说明订阅能否更新、本地端口是否监听、请求是否进入内核。按这套顺序记录,比一句「节点全红」更容易判断问题属于本机设置、解析路径还是节点服务。

排查顺序可以压缩为一条线:订阅确实更新并启用 → 时间与网络正常 → 内核启动且端口可用 → DNS 路径成立 → 协议参数匹配 → 实际请求命中预期节点。在哪一步出现可重复的失败,就先停在那一步处理。

Clash 客户端下载