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 泄漏怎么查。
常见误解
- “有泄漏就等于被看光了”。泄漏的是域名查询,内容是否可见是另一回事。
- “开了 TUN 模式就不会泄漏”。TUN 扩大了接管范围,但 DNS 怎么处理仍要看客户端的 DNS 设置。
- “用了 Fake-IP 就万事大吉”。它能减少一部分本地解析,但也不能代替完整的 DNS 配置。
怎么自己处理
先检测,确认有泄漏再改,不要盲目调整。客户端的 DNS 设置思路,见Clash DNS 怎么设置。改完要重新检测一次,并在不同模式下各验证,避免出现“改了其中一种、另一种仍泄漏”。