Clash Verge 排查指引
Clash 系客户端采用典型的"界面 + 内核"架构:你操作的窗口负责管理配置和展示状态,实际的监听与转发由它托管的 Clash 内核完成。排查时的第一课就是分清两者——界面开着不代表内核活着,内核的报错也不会都弹到界面上。
关键入口
- 日志:侧栏"日志"页实时显示内核输出;排查连接问题时把日志级别临时调到
debug或info(设置页),信息量差别很大; - 内核状态:设置页显示的内核版本号是内核存活的直接证据——显示异常或空白说明内核没起来;
- 连接面板:“连接"页列出每条活动连接的目标、分流判定与出口,是排查分流类问题的最重要工具。
常见报错与错误码对照
| Clash 日志中的报错片段 | 对应错误码 | 排查文档 |
|---|---|---|
dial tcp ... i/o timeout | TCP-001 | TCP 连接超时 |
connect: connection refused | TCP-002 | 连接被拒绝 |
connection reset by peer | TCP-003 | 连接被重置 |
tls handshake timeout | TLS-002 | TLS 握手超时 |
x509: certificate ... | TLS-001 / TLS-004 | 证书校验失败 |
websocket: bad handshake | WS-001 | WebSocket 升级失败 |
| 订阅更新提示 4xx/超时 | SUB-001 | 订阅更新失败 |
| 配置加载失败 / 端口无监听 | PROXY-003 | 代理端口未监听 |
Clash Verge 特有的注意点
- 配置合并:Verge 支持全局扩展配置与订阅配置合并,合并冲突可能让内核启动失败——更新订阅后突然全体失效时,先临时禁用扩展配置排除干扰;
- 系统代理与 TUN 二选一:两种接管方式同时开启容易互相干扰,排查期间只保留一种;
- 退出方式:托盘菜单正常退出会恢复系统代理;直接结束进程会残留(表现见系统代理残留);
- 内核升级:Verge 允许切换内核版本,订阅使用新协议字段而内核过旧时会解析失败,报错在日志开头几行。
通用取证流程
客户端日志给出线索后,用 ConnProof 独立取证(脱离客户端环境验证,排除客户端自身因素):
connproof diagnose 节点域名 --port 节点端口客户端失败而 ConnProof 直连检测正常 → 问题在客户端配置层;两者一致失败 → 问题在链路,按错误码文档处理。