「能上网」和「解析没外泄」是两回事。代理连着,DNS 却还在问运营商,这种情况非常常见。

三分钟自测

  1. 浏览器打开 dnsleaktest.com 或 browserleaks.com/dns 跑一次测试。结果里列出的服务器如果是你宽带运营商的名字,那就是泄漏了。
  2. Connections 页面看域名列:显示的是完整域名而不是一串裸 IP,说明解析发生在 Clash 内部,这是好现象,页面用法见 Connections 页面详解
  3. 命令行 nslookup www.example.com 查到的是本机网卡的 DNS,它不经过系统代理,所以这一条只在 TUN 模式下有参考价值。
合作推荐 订阅链接从哪来? 本站合作机场注册即送 1GB 香港高速体验流量,可直接一键导入。 获取高速节点

fake-ip 模式下的正常现象

fake-ip 模式里浏览器拿到的是 198.18.x.x 这类保留地址,真正的解析在建立连接时才由出口那头完成。所以测试站可能一个「DNS 服务器」都列不出来,或者列出的是节点所在地的解析器——这都正常,机制见 fake-ip 与 redir-host 模式详解

泄漏了怎么堵

  • 只开了系统代理没开 TUN:浏览器以外的程序自己解析,这是设计如此,不是 bug。要全局接管就得上 TUN。
  • dns.enable 是 false:内核根本没接管 DNS,把它打开。
  • nameserver 里写着运营商的 DNS:换成加密 DNS 或公共 DNS,别用宽带自动下发的那个。
  • 浏览器自己开了安全 DNS:Chrome 和 Firefox 的 DoH 会绕过系统设置自行解析。测试站显示的服务器是 Cloudflare 或 Google 而你从没配过,多半就是它。
顺带一提:只是想确认代理本身有没有生效,有更简单的办法,见 开启系统代理与验证代理是否生效