排查的核心是分段定位:先确认内核是否在运行,再确认规则命中是否符合预期, 最后看节点出口是否可达。三层里只有一层出问题,避免同时改多个地方。

通用排查流程

# 1. 内核是否在跑
systemctl status clash        # 或查看客户端进程

# 2. 端口是否监听
ss -lntp | grep -E '7890|9090'

# 3. 直连测试(绕过代理)
curl -s -o /dev/null -w "%{http_code}\n" --noproxy '*' https://www.baidu.com

# 4. 通过代理测试
curl -s -o /dev/null -w "%{http_code}\n" -x http://127.0.0.1:7890 https://www.google.com

# 5. 开启 debug 日志观察规则命中
curl -N -H "Authorization: Bearer your-password" http://127.0.0.1:9090/logs

连接类故障

1. 开了代理完全无法上网

先判断是内核问题还是节点问题:把模式切成 direct,如果恢复正常, 说明是节点或规则的问题;如果仍然不通,则是端口或系统代理配置的问题。

2. 所有节点延迟都是超时

  • 检查系统时间是否准确 —— 证书校验对时间偏差极敏感;
  • 确认节点服务器地址没有被本机防火墙拦截;
  • 测试地址可能被屏蔽,换一个测速地址再试;
  • 如果是新增节点,核对端口与加密方式是否与订阅一致。

3. 部分网站打不开,其他正常

典型的规则问题。把日志调到 debug,看该域名命中了哪条规则,再调整顺序或补充规则。

4. 局域网设备无法访问路由器后台

缺少内网直连规则。补上私网网段即可:

rules:
  - IP-CIDR,10.0.0.0/8,DIRECT,no-resolve
  - IP-CIDR,172.16.0.0/12,DIRECT,no-resolve
  - IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
  - DOMAIN-SUFFIX,local,DIRECT

配置类故障

5. 启动报 yaml 解析错误

九成是缩进问题。YAML 不允许使用 Tab,且同级字段必须对齐。用 -t 参数可以先做一次校验。

6. 端口被占用

# Linux / macOS
lsof -i :7890
# Windows
netstat -ano | findstr 7890

找到占用进程后,要么结束它,要么在配置里改用其他端口。

7. 订阅更新失败

  • 先用 curl -L 手动请求,确认链接本身有效;
  • 检查是否有代理环路 —— 更新订阅的请求本身走了代理,而代理还没起来;
  • 查看返回内容是否为 Base64 而非 YAML,格式不匹配需要先转换。

8. 改了配置但没生效

热重载只对新连接生效,已有连接会保持原样。个别字段(如 mixed-port)属于启动参数,必须重启内核。

DNS 类故障

9. 网页转圈很久才打开

DNS 解析慢的典型表现。检查解析器是否可达,并确认 fake-ip 已开启。

# 直接向内核的 DNS 查询,观察耗时
dig @127.0.0.1 -p 1053 example.com +stats

10. 部分应用提示「网络异常」

多半是 fake-ip 导致的。把该应用的域名加入 fake-ip-filter,或临时切回 redir-host 验证。

性能类故障

11. 内存持续增长

通常是规则集过大或连接未及时回收。精简规则、降低日志等级、限制连接数都有帮助,详见 性能调优

12. 网速明显低于直连

  • 确认没有开启额外的加密层(如双重代理);
  • 检查 MTU 设置,过小会导致分片开销上升;
  • 改用延迟更低、带宽更充足的节点,而不是只看 ping 值。

平台特有故障

平台典型问题处理方向
Windows系统代理开关反复自动关闭检查是否有安全软件接管代理设置
macOS卸载后浏览器完全无法上网复位系统代理设置
Android息屏后断连关闭电池优化
iOS后台一段时间后失效允许后台刷新,关闭低电量模式
路由器重启后配置丢失配置文件放在持久化分区

遇到无法解释的问题时,把日志等级调到 debug 并保留一段完整的连接日志,绝大多数问题都能从中看出端倪。


如果问题与性能相关,继续阅读 性能调优:内存、并发与延迟

排错 ← 返回教程列表