connected 状态不要当作「已经能打开网页」的证明。Clash Verge Rev 官方文档把 System Proxy 和 TUN 分成两类入口:前者主要改操作系统代理设置,通常覆盖浏览器;后者安装虚拟网卡,用来接管不跟随系统代理的程序。入口选错,节点再亮也没用。

这篇只处理一种现象:客户端看起来已连接,节点测试有延迟,网页却打不开、转圈、部分域名失败或只有某个浏览器失败。客户端无法启动、订阅地址返回空内容、配置文件无法导入,不在这篇里展开。

##判断请求有没有进客户端?

打开日志后刷新目标网页,不要只看首页状态灯。日志里有没有新记录,是整篇排查的分叉点。

访问网页时的信号更可能卡住的位置做什么
日志没有任何新记录系统代理、TUN、浏览器代理扩展查入口是否接管请求
日志出现域名但 DNS 超时DNS、DoH、Private DNS、fake-ip 映射查 DNS 策略和浏览器 DNS
日志显示 DIRECTREJECT规则顺序、规则集、final查规则命中
日志显示 IPv6 地址后失败IPv6 出口或系统优先级做 IPv4-only 对照
日志显示 timeout / reset / TLS 错误节点出口、协议字段、目标握手换同组节点验证

如果日志完全没有记录,先别换节点。你的浏览器请求可能根本没经过客户端。

系统代理开了,为什么浏览器还是打不开?

系统代理模式只接管愿意读取操作系统代理设置的程序。Clash Verge Rev 快速入门也把它描述为通过开关修改系统代理,主要满足大多数浏览器流量;游戏、命令行、部分商店客户端不一定走这条路。

桌面端先查 4 件事:

  1. 系统代理地址是否指向 127.0.0.1localhost 的客户端端口。
  2. 浏览器有没有独立代理扩展,例如 SwitchyOmega、Proxy SwitchySharp 或企业安全插件。
  3. 浏览器是否使用独立配置文件,新配置文件可能没有继承系统代理。
  4. 客户端退出后系统代理是否残留,残留端口会导致浏览器一直连本机空端口。

Windows 上可以用系统设置里的「代理」页面确认地址和端口。macOS 上要看当前网络服务的代理配置,切换 Wi-Fi 后也可能出现代理状态变化。

TUN 打开后全断,查哪几个开关?

TUN 是虚拟网卡入口,排查顺序和系统代理不同。Mihomo 文档里常见字段包括 enablestackauto-routeauto-detect-interfacedns-hijackstrict-route 和路由排除;sing-box TUN 文档在 1.14.0 之后还增加了 dns_modedns_address 等 DNS 接管相关字段。

TUN 配置点正常目标异常表现处理方式
虚拟网卡系统出现 TUN 网卡并有路由开关亮但无网卡重启客户端或检查权限
auto-route默认流量进入 TUN开 TUN 后全断先关闭再单独启用,排除路由冲突
auto-detect-interface出口网卡选对多网卡、VPN、热点下循环手动指定出口或关闭冲突网络
dns-hijack / dns_modeDNS 进入内置 DNS域名不解析或被外部 DNS 接管查端口 53、Private DNS、浏览器 DoH
strict-route减少非预期出口某些本地网段或软件断开临时关闭对照,再加排除网段
route excludeNAS、打印机、网关仍可访问局域网设备打不开排除局域网网段

sing-box route 文档明确提到,TUN 下可用 auto_detect_interface 避免路由环路;如果已经给 outbound 绑定了接口,这个自动检测不会再生效。多网卡电脑、公司 VPN、手机热点共享网络最容易踩这个坑。

DNS 有问题时,日志通常长什么样?

DNS 故障最常见的表现是:访问 IP 能通,访问域名不通;同一个网站主域名能开,登录、图片、API 子域名打不开;或浏览器报 DNS 相关错误但客户端显示 connected。

Mihomo DNS 文档里,enhanced-mode: fake-ip 会给域名分配 fake 地址,再由客户端映射回真实域名;nameserver-policy 可以让特定域名或 geosite 走指定解析器;fallbackfallback-filter 会影响备用解析结果。sing-box 则把 DNS 与 route 分开配置,TUN 的 DNS 接管还受 dns_mode 和路由动作影响。

排查时按这个顺序:

  1. 访问网页,日志里先找目标域名,不要只看浏览器错误页。
  2. 如果出现 NXDOMAINlookup failedcontext deadline exceeded,查 DNS。
  3. 如果使用 fake-ip,确认客户端没有丢失 fake IP 到域名的映射。
  4. 关闭浏览器 DoH 做一次对照。Chrome、Edge、Firefox 都可能绕过系统 DNS。
  5. Android 设备检查 Private DNS;开启后会影响部分 DNS 劫持场景。
  6. 路由器、公司安全软件、杀毒软件也可能把 DNS 改到固定地址。

刚换订阅、多端迁移或同一份配置在不同客户端表现不一致时,可以用兼容 Clash / Singbox / V2Ray 的订阅做对照。对照时只改订阅,不同时改 DNS、规则和客户端版本,否则看不出真正变量。

规则模式命中错了,怎么快速确认?

规则问题比 DNS 更隐蔽。网页打不开时,日志里如果显示目标域名命中 DIRECTREJECT、错误策略组或未预期的 final,connected 状态不会告诉你这件事。

Mihomo 的规则文档和 sing-box route 文档都强调规则列表、规则集和默认出站的顺序。sing-box 的 final 为空时会使用第一个 outbound;Mihomo 配置里常见的 MATCHFINAL 或兜底规则也会影响所有未匹配请求。

检查规则时不要只搜主域名。例如网页地址是 example.com,实际失败的可能是:

页面现象可能失败的域名类型日志里重点看什么
首页能开,登录失败api.accounts.oauth.是否命中同一策略组
图片和脚本加载不出cdn.static.、对象存储域名是否被广告或隐私规则拦截
下载按钮无响应Release、对象存储、跳转域名是否走了错误 final
公司后台只转圈SSO、验证码、风控域名是否部分 DIRECT、部分代理

改规则后要重载配置,再刷新网页。只保存文件、不重载内核,日志不会变化。

IPv6 为什么会让 connected 变得误导?

很多系统会优先尝试 IPv6。节点测试走 IPv4 成功,浏览器访问目标域名时却优先拿到 AAAA 记录,就会出现「客户端 connected,但网页一直转圈」。

三个对照最快:

  1. 在客户端或系统里临时关闭 IPv6,只保留 IPv4 测一次目标网站。
  2. 看日志里失败的是 IPv4 地址还是 IPv6 地址。
  3. 如果只有 IPv6 失败,检查 DNS 策略是否返回 AAAA、规则是否覆盖 IPv6、出口是否支持 IPv6。

不要长期靠关闭 IPv6 当最终方案。更稳妥的做法是让 DNS、规则和出口能力一致:要么完整支持 IPv6,要么明确让相关域名按 IPv4 访问。

浏览器缓存和 DoH 什么时候要管?

同一台电脑里,App 能访问、只有一个浏览器不行,优先怀疑浏览器层。浏览器会缓存 DNS、HSTS、证书状态、Service Worker 和站点数据;代理扩展也可能覆盖系统代理。

最省时间的验证组合:

  1. 用隐身窗口打开目标网页。
  2. 换一个没有代理扩展的浏览器。
  3. 关闭浏览器安全 DNS / DoH。
  4. 清理目标站点数据,而不是清空所有历史记录。
  5. 如果只某个域名失败,清系统 DNS 缓存后再测。

如果换浏览器立刻正常,别继续动 TUN 和规则,处理扩展、DoH、站点数据和证书缓存。

怎么判断已经修好

修好不是首页打开一次就算。至少做 5 个验证动作:

验证动作合格信号不合格信号
刷新目标网页日志出现目标域名日志仍无记录
打开登录或搜索页API、静态资源都有记录只有主域名成功
切换浏览器结果一致只有某浏览器失败
重启客户端仍能访问依赖临时切换才可用
断开再连网络系统代理 / TUN 状态恢复代理端口残留或 TUN 丢路由

最后再看节点。DNS、规则、系统代理、TUN、IPv6、浏览器都排除后,同一策略组内换 2 个节点,如果错误从 timeout 变成成功,才说明出口层是主要变量。

这篇不处理什么?

这篇不处理订阅地址 403、404、过期、返回登录页,也不处理 YAML、JSON 解析失败。那些问题发生在配置导入阶段,和 connected 后网页打不开不是同一层。

也不把所有故障归因到线路质量。代理客户端排错最怕一上来就换订阅、换客户端、重装系统;日志里没有目标域名时,换多少节点都不会解决系统代理或 TUN 接管问题。

相关阅读