连接排障 · Clash 技术博客

Clash 已连接但无法上网怎么办?DNS、Fake-IP 与规则排查

“已连接”不能证明目标请求成功。根据本地代理错误、解析失败、节点超时或仅 TUN 断网,检查对应设置;结合系统代理、直连和 Connections 对照,保留具体规则、出口与日志错误。

  • 无法上网
  • DNS
  • 排障
本文目录

代理应用显示“已连接”,只是排查的起点;真正要确认的是刚才访问的目标有没有拿到结果。网页立即报代理错误、只有域名失败,以及开启虚拟网卡后整机断网,检查位置并不相同。记录具体症状,能避免把规则、节点和系统设置一起改乱。

显示已连接,不代表请求已经成功

记录失败目标、错误原文和当前模式,再按下表选择检查项。不要用内核运行代替代理端口可用,也不要用节点可达代替 DNS 正常;这些结果需要分别确认。

下面的系统代理对照与端口检查适用于 Windows/macOS。Android 用户先核对 VPN 授权和分应用设置,具体操作见手机教程;已有连接记录时,DNS、规则和节点的判断仍可参考后文。

不同现象的第一检查点

现象先检查
所有网站都立即报代理连接失败系统代理指向的本地地址和端口
域名打不开,直接访问 IP 有响应DNS 与浏览器安全 DNS
国内正常,需代理站点超时节点、策略组和规则命中
系统代理正常,一开 TUN 全断服务、虚拟网卡、默认路由和其他 VPN
只有某个应用失败该进程是否进入 Clash,以及应用自身状态码

系统代理、TUN 与直连的对照

关闭 TUN,只保留 Rule 模式与系统代理,重新打开同一个网页。系统代理可用而 TUN 断网,订阅和节点至少有一条基本可用路径,重点转向服务、路由与 DNS;两种模式都失败,则先不碰虚拟网卡。

直连测试换用当前网络本来能打开的网页;不要沿用必须代理的目标。关闭系统代理后,这类网页也失败时,再检查 Wi-Fi、宽带、企业认证或路由器。Clash 不能修复本来就无法上网的网络。

网页请求有没有出现在连接页面?

清空连接记录,访问一个固定域名。如果完全没有新请求,浏览器可能没有使用系统代理,端口可能写错,或应用绕过了当前接管方式;继续换规则和节点不会改变这一点。

请求已经出现时,记下目标、命中规则、策略组和错误。意外 DIRECT、REJECT、timeout、connection refused 提示的原因不同,应分别检查。只看托盘图标颜色,会漏掉这些具体证据。

一次最小复现

  1. 固定配置和节点

    暂时关闭自动切换,只保留一个出口。

  2. 清空连接与日志视图

    避免把后台更新误认成刚才的网页请求。

  3. 访问同一个 HTTPS 地址

    记录是否进入 Clash、命中什么规则、出现什么错误。

  4. 只改一个变量再重试

    节点、规则、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 后结果改变时,检查解析入口。暂时关闭浏览器 DoH 做对照,再核对系统与 Clash 实际使用的解析路径和 nameserver 是否可达;关闭一个开关并不能自动让两者使用相同解析设置。

恢复后再决定是否重新开启浏览器的独立解析。路由器解析与浏览器解析并存时,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 地址,而公网域名能在连接页恢复为域名并正确分流。

Windows 切换 DNS 模式后的缓存清理
ipconfig /flushdns

请求进入以后,再按规则、节点或 TUN 分开处理

请求命中 DIRECT 后超时

常见原因:可能误命中直连规则,也可能是本地网络或目标服务不可达

处理方法:先确认是否本应直连;本应代理时,才把精确规则放在 GEOIP 与 MATCH 前面,并重做同一请求。

命中代理组但 dial timeout

常见原因:当前节点、协议或远端不可达

处理方法:固定另一条已知可用节点对照,不先改 DNS。

本地代理 connection refused

常见原因:端口未监听或系统代理写错

处理方法:核对 mixed-port、进程状态和端口占用。

只有 TUN 下全断

常见原因:服务权限、默认路由、虚拟网卡或其他 VPN 冲突

处理方法:恢复系统代理后逐项检查,不执行整机网络重置。

参考资料