技术笔记 · NT-04
Clash 节点超时无法连接?按这个排查顺序逐项定位问题
节点全部超时未必是节点坏了。从本机网络、订阅有效性、协议参数、端口占用到策略组选择,给出一条从近到远的排查顺序,每一步附判断依据。
NT-04.1先确认现象范围,别急着换节点
"节点超时"是一个笼统的说法,背后可能是完全不同的故障点。在动手排查之前,先花一分钟确认现象的范围,能省下大量无效操作。核心是回答三个问题:是所有节点都超时,还是只有部分节点超时?是所有软件都连不上,还是浏览器能上、命令行工具连不上?延迟测试(Latency)能测出数字,还是直接显示超时符号?
如果只有部分节点超时,其余节点正常,大概率是那部分节点本身的服务端问题或线路拥堵,直接切换到延迟正常的节点即可,不必往下排查。如果是全部节点同时超时,且延迟测试栏位直接空白或显示超时,问题往往出在本机网络、订阅数据或客户端配置上,这时才需要按下面的顺序逐项核查。
打开客户端的节点列表,点一次批量延迟测试(通常是列表右上角的测速按钮或延迟图标),观察是"全灭"还是"部分灭"。这一步决定了后面该往哪个方向查。
NT-04.2第一步:本机网络与系统代理设置
排查顺序遵循"从近到远"的原则——先查离自己最近、最容易验证的环节,再往订阅、协议这类需要更多操作的环节推进。第一步永远是本机网络本身。
- 确认设备本身能正常访问互联网:临时关闭 Clash 客户端的代理开关,直接用系统网络打开任意网页,确认不是断网或本地网络故障。
- 检查客户端的系统代理开关是否已经打开。部分客户端默认不自动设置系统代理,代理服务在跑但流量并未真正经过它,浏览器请求走的还是直连。
- 确认代理模式设置。规则模式(Rule)下,某些直连规则会让流量绕开节点;如果怀疑是规则问题,可临时切到全局模式(Global)测试,若全局模式下正常,说明问题在规则配置而非节点本身。
- 检查本机防火墙或安全软件是否拦截了客户端的网络请求,尤其是刚安装的杀毒软件或系统自带防火墙的出站规则。
这一步能排除掉相当一部分"伪超时"——客户端明明在跑,但流量根本没走代理,延迟测试自然测不出正常结果。
NT-04.3第二步:订阅是否仍然有效
本机网络确认无误后,下一步查订阅本身。订阅链接指向的是一份配置文件,其中包含节点列表、服务器地址、端口和认证信息。这份数据如果过期或者错误,所有节点自然全部超时,与节点服务器状态无关。
- 查看订阅在客户端里显示的最近更新时间。如果距今已超过订阅方标注的有效周期,说明这份配置可能已经失效,需要手动点一次更新订阅。
- 确认订阅流量或到期时间未耗尽。多数订阅方案有用量或时长限制,一旦超出,服务端会直接拒绝新连接,表现为节点全部超时。
- 重新导入一次订阅链接,而不是依赖客户端的自动更新。有些客户端的自动更新间隔较长,手动强制刷新能立刻拿到最新配置。
- 打开配置文件详情,核对节点数量和名称是否与订阅方页面上的说明一致。数量骤减或名称变成乱码,通常意味着订阅地址本身出了问题。
订阅链接本身的可访问性也要考虑——如果获取订阅内容这个动作都需要经过代理才能完成,而此时代理又不可用,就会出现"更新订阅"这个操作本身失败的循环。遇到这种情况,先临时关闭代理开关再更新订阅。
NT-04.4第三步:协议参数与握手细节
订阅数据确认无误、节点列表正常之后,如果超时依旧存在,就要进入协议层面核查。Clash 支持的节点协议(如 Shadowsocks、VMess、Trojan、Hysteria2 等)每一种都有独立的握手流程,参数写错任何一项都会导致连接建立失败,客户端侧统一表现为超时,不会给出具体错误原因。
- 核对服务器地址与端口是否与订阅方最新说明一致。部分服务商会不定期更换出口 IP 或端口,而老旧的本地缓存配置没有同步更新。
- 检查加密方式(cipher)、传输协议(如 ws、grpc、tcp)等字段是否与服务端设置匹配。这些字段任意一个不对,握手阶段就会卡住直至超时。
- 如果节点使用了 TLS 或 SNI 伪装,确认证书域名与 SNI 字段填写正确。证书校验失败通常也表现为连接超时或直接断开,而不是明确的证书错误提示。
- 查看客户端日志面板(多数客户端在设置或工具菜单里能找到实时日志),日志里往往会有
dial tcp: i/o timeout、context deadline exceeded之类的原始信息,比界面上的"超时"图标更有参考价值。
time="2026-07-10T14:02:11+08:00" level=warning msg="[TCP] dial ss-node-hk failed: dial tcp 203.0.113.10:443: i/o timeout"
看到这类日志,基本可以确认问题出在与该服务器的网络连通性或参数匹配上,而不是客户端本身故障。
NT-04.5第四步:端口占用与本地冲突
如果协议参数核对无误,节点依然全部超时,需要排查本机端口层面的冲突。Clash 及内核程序需要占用几个本地端口——HTTP 代理端口、SOCKS5 代理端口、混合端口以及控制面板端口(如常见的 7890、7891、9090)。这些端口被其他程序占用或被系统权限拦截时,代理服务实际上没有正常监听,表现出来也是连接超时。
- 检查是否同时运行了另一个代理软件或 VPN 客户端,两者争抢相同端口时,后启动的一方往往会静默失败。
- 确认端口号没有被系统或其他服务占用。可以在系统命令行里查看端口占用情况(Windows 用
netstat -ano,macOS/Linux 用lsof -i:端口号),确认监听进程确实是当前的 Clash 内核。 - 如果最近修改过配置文件里的端口设置,确认客户端界面显示的端口与配置文件中的端口一致,重启一次客户端让改动生效。
- TUN 模式下遇到超时,额外检查虚拟网卡是否正常创建、路由表是否被其他网络工具覆盖,这部分排查方法可参考站内 TUN 模式相关的教程说明。
端口冲突的典型特征是:客户端界面显示"已连接"或服务在运行,但延迟测试始终超时,且几乎所有节点、所有协议同时受影响——这与订阅或协议参数错误(通常只影响特定节点)的表现明显不同。
NT-04.6第五步:策略组与节点选择逻辑
走到这一步,如果前面四项都排除了问题,还剩最后一个容易被忽视的环节——策略组(Proxy Group)的选择逻辑。Clash 的策略组决定了实际流量走哪个节点,常见类型有 select(手动选择)、url-test(自动测速选优)、fallback(故障转移)和 load-balance(负载均衡)。如果策略组当前选中的节点本身就是失效节点,浏览体验会表现为超时,而节点列表里其他节点测速却是正常的。
- 打开策略组面板,确认当前生效的策略组选中的具体节点,而不是只看策略组名称。
url-test类型的策略组会按设定的测速地址和间隔自动切换,如果测速地址本身在特定网络环境下不可达,自动选择的结果可能不准确,可以临时切换成手动选择一个已知延迟正常的节点做对比。- 检查规则集里是否有域名或应用被错误地指向了一个空的或已失效的策略组,这种情况在自定义规则较多的配置里比较常见。
- 如果使用了多个订阅合并的配置,确认没有节点重名导致策略组引用了错误的那一个。
把这五步走完,基本可以覆盖 Clash 场景下"节点超时"的绝大多数成因。排查顺序按由近到远设计,是为了避免走弯路:多数人第一反应是怀疑节点或订阅商,但实际上本机网络设置和端口冲突这类本地问题占了不小的比例,而这些问题往往几分钟就能确认排除。
NT-04.7排查小结
| 排查阶段 | 典型表现 | 处理方向 |
|---|---|---|
| 本机网络与系统代理 | 直连正常但代理下全部超时 | 检查代理开关、模式与防火墙 |
| 订阅有效性 | 节点数量骤减或全部超时 | 手动更新订阅、核对到期时间 |
| 协议参数 | 特定节点或特定协议持续超时 | 核对地址端口、加密方式、SNI |
| 端口占用 | 服务运行中但监听异常 | 排查端口冲突、重启客户端 |
| 策略组选择 | 部分节点正常但当前生效节点超时 | 核查策略组实际选中项 |
如果按以上顺序逐项核对后问题依旧存在,建议保留客户端日志面板中的原始报错信息,这些信息比界面上的"超时"提示更具体,也更方便进一步定位是网络环境问题还是配置本身的问题。