排查的核心是分段定位:先确认内核是否在运行,再确认规则命中是否符合预期, 最后看节点出口是否可达。三层里只有一层出问题,避免同时改多个地方。
通用排查流程
# 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并保留一段完整的连接日志,绝大多数问题都能从中看出端倪。
如果问题与性能相关,继续阅读 性能调优:内存、并发与延迟。
排错
← 返回教程列表