DNS 泄漏是什么意思?

一句话解释

DNS 泄漏是指开了代理后,域名解析请求仍由本地网络的 DNS 处理,没有走代理,导致你访问了哪些域名被本地网络看到。

泄漏的是“你查询了哪些域名”,不是网页内容本身。它可能出现在客户端 DNS 设置不当、程序绕过系统代理、浏览器单独走安全 DNS 等情况。你可以用 DNS 泄漏检测页面发现它,并在客户端的 DNS 设置里修复。

先弄清 DNS 在做什么

DNS 像一本电话簿:你输入一个域名,设备先问 DNS 服务器“这个域名对应哪个 IP”,拿到答案才去连接。Cloudflare 有一篇概念介绍,见 Cloudflare:What is DNS。

理想的情况是,开了代理后,这一步也跟着代理走,或者至少由你信任的 DNS 来完成。DNS 泄漏就是这一步“漏”了:域名查询没有走代理,而是发给了本地网络默认的 DNS 服务器,比如宽带运营商提供的那台。

泄漏了什么,没泄漏什么

内容 是否因 DNS 泄漏暴露
你查询了哪些域名 可能被本地 DNS 看到
网页内容、账号密码 不因此暴露,这由连接是否加密决定
你的真实出口 IP 访问目标网站时仍是节点 IP
解析结果的地域 可能被本地 DNS 返回针对本地的结果

所以它是隐私与准确性的问题:记录可能被看到,也可能拿到不适合你当前出口的解析结果。

常见的泄漏来源

  • 客户端的 DNS 设置没有开启,或解析走了系统默认。
  • 只开了系统代理,不读系统代理的程序仍使用本地 DNS。
  • 浏览器内置了独立的安全 DNS 设置,绕开了客户端。
  • 规则里把某些域名走了直连,却没有对应处理它们的解析。

在哪里会看到,怎么发现

没有任何客户端会主动弹出“你泄漏了”。发现它的办法是使用 DNS 泄漏检测页面:连着代理访问,看页面列出的 DNS 服务器是否属于本地运营商或你所在的网络。检测方法与客户端修复的具体设置,请读DNS 泄漏怎么查。

常见误解

  1. “有泄漏就等于被看光了”。泄漏的是域名查询,内容是否可见是另一回事。
  2. “开了 TUN 模式就不会泄漏”。TUN 扩大了接管范围,但 DNS 怎么处理仍要看客户端的 DNS 设置。
  3. “用了 Fake-IP 就万事大吉”。它能减少一部分本地解析,但也不能代替完整的 DNS 配置。

怎么自己处理

先检测,确认有泄漏再改,不要盲目调整。客户端的 DNS 设置思路,见Clash DNS 怎么设置。改完要重新检测一次,并在不同模式下各验证,避免出现“改了其中一种、另一种仍泄漏”。

讲到DNS 泄漏的指南

想看各家机场在这一项上的资料?

机场推荐榜逐家列出了价格、线路、协议和节点地区;拿不准怎么选,可以用选梯子向导。