本文目录
Clash 显示已连接却上不了网,先看具体是哪一种失败
同一句“Clash 显示已连接”,可能只表示内核进程在运行,并不能证明系统代理端口可用、节点可达或 DNS 正常。先记录一条具体错误、一个目标地址和当前使用的模式,排查才有起点。
不同现象的第一检查点
| 现象 | 先检查 |
|---|---|
| 所有网站都立即报代理连接失败 | 系统代理指向的本地地址和端口 |
| 域名打不开,直接访问 IP 有响应 | DNS 与浏览器安全 DNS |
| 国内正常,需代理站点超时 | 节点、策略组和规则命中 |
| 系统代理正常,一开 TUN 全断 | 服务、虚拟网卡、默认路由和其他 VPN |
| 只有某个应用失败 | 该进程是否进入 Clash,以及应用自身状态码 |
用两个开关把故障范围先切开
关闭 TUN,只保留 Rule 模式与系统代理,重新打开同一个网页。系统代理可用而 TUN 断网,订阅和节点至少有一条基本可用路径,重点转向服务、路由与 DNS;两种模式都失败,则先不碰虚拟网卡。
随后关闭系统代理恢复直连,确认普通网络本身可用。直连也失败时,应先处理 Wi-Fi、宽带、企业认证或路由器问题。Clash 不能修复一个本来就没有外网的底层连接。
连接页面有没有这次请求,是最重要的分叉
清空连接记录,访问一个固定域名。如果完全没有新请求,浏览器可能没有使用系统代理,端口可能写错,或应用绕过了当前接管方式;继续换规则和节点不会改变这一点。
请求已经出现时,记下目标、命中规则、策略组和错误。意外 DIRECT、REJECT、timeout、connection refused 分别指向不同层。只看托盘图标颜色,会丢掉最能说明问题的证据。
一次最小复现
固定配置和节点
暂时关闭自动切换,只保留一个出口。
清空连接与日志视图
避免把后台更新误认成刚才的网页请求。
访问同一个 HTTPS 地址
记录是否进入 Clash、命中什么规则、出现什么错误。
只改一个变量再重试
节点、规则、DNS、TUN 不要同时变化。
立即报错时,核对系统代理和监听端口
浏览器一打开就显示无法连接到代理服务器,常见原因是 Windows 或 macOS 仍指向 127.0.0.1 的旧端口,而当前客户端没有监听。到客户端设置读取真实 mixed-port,再用 netstat、lsof 或 ss 验证。
端口存在时可用 curl -x 显式请求,区分本地代理入口与系统代理写入。显式代理成功、浏览器失败,问题在系统或浏览器设置;显式代理也失败,才回到内核、节点和日志。
# 将 7890 换成客户端实际端口
curl -I -x http://127.0.0.1:7890 https://example.com
# Windows
netstat -ano | findstr :7890
# macOS / Linux
lsof -nP -iTCP:7890 -sTCP:LISTEN只有解析表现异常时,才进入 DNS 排查
域名请求长时间没有目标地址、nslookup 失败,或者关闭浏览器安全 DNS 后现象改变,才说明 DNS 值得优先处理。先让浏览器、系统和 Clash 使用一套解析入口,再查看 nameserver 是否可达。
如果系统使用路由器 DNS、浏览器又单独开启安全 DNS,Clash 可能拿不到完整域名。排查时暂时关闭浏览器 DoH,让同一个域名从系统到 Clash 只经过一条解析路径;恢复后再决定是否重新开启。
使用 Fake-IP 时,先分清正常虚拟地址和过期缓存
Fake-IP 模式下,域名解析到 198.18.0.0/15 一类地址通常是正常现象:应用先连接这个虚拟地址,Mihomo 再把它还原成域名并匹配规则。看到 198.18.x.x 本身不代表 DNS 被污染,关键是连接页面能否保留原域名并命中预期策略。
真正需要处理的是切换配置、改规则或从 Redir-Host 改到 Fake-IP 后,系统和应用仍拿着旧结果。此时先关闭测试应用,清理系统 DNS 缓存,再重启 Mihomo 内核后复测;不要一边保留旧连接,一边连续切换增强模式。
NAS、打印机、路由器后台和企业内部域名若必须返回真实内网地址,应加入当前配置的 fake-ip-filter 或交给对应内网 DNS。验证结果是这些本地域名仍解析到真实 LAN 地址,而公网域名能在连接页恢复为域名并正确分流。
ipconfig /flushdns请求进入以后,再按规则、节点或 TUN 分开处理
请求命中 DIRECT 后超时
常见原因:具体规则被更宽的直连规则提前匹配
处理方法:查看最终规则顺序,把精确规则放在 GEOIP 与 MATCH 之前。
命中代理组但 dial timeout
常见原因:当前节点、协议或远端不可达
处理方法:固定另一条已知可用节点对照,不先改 DNS。
本地代理 connection refused
常见原因:端口未监听或系统代理写错
处理方法:核对 mixed-port、进程状态和端口占用。
只有 TUN 下全断
常见原因:服务权限、默认路由、虚拟网卡或其他 VPN 冲突
处理方法:恢复系统代理后逐项检查,不执行整机网络重置。
最终应能用一句具体的话描述故障,例如“请求已进入 Clash,命中 PROXY,固定节点返回 dial timeout”,而不是“软件绿了但没网”。这句话已经包含下一步需要处理的层级。
