DNS泄露是指你的域名查询没有经过代理,而是由本地网络的 DNS 服务器处理,使本地网络仍能看到你查询了哪些域名,即使后续连接走了代理。成因多是客户端没有接管 DNS 或分流规则设置不当。它与 DNS 污染不同:污染是返回了错误结果。可用检测工具自查,并在客户端里调整。
DNS泄露是什么?很多人以为,开了代理,上网痕迹就全被隐藏了。实际上,有一类信息可能“漏”在代理之外:**你要访问哪个域名。**这就是 DNS 泄露。它不会让别人看到网页里的内容,却可能让本地网络知道你查询过哪些网站,而这恰恰是不少人开代理想避免的。下面依据 Cloudflare 对 DNS 的科普,把 DNS 的作用、泄露的成因、与污染的区别,以及自查和修正的入口讲清楚。
先弄懂 DNS:它在上网过程中做什么
你输入一个网址,比如某个网站的域名,电脑并不知道它在哪台服务器上,需要先去问一个“电话簿”:这个域名对应哪个 IP 地址?这个查询过程就是 DNS 解析。
| 步骤 | 做什么 |
|---|---|
| 1 | 你访问一个域名 |
| 2 | 设备向 DNS 服务器发起查询:这个域名的 IP 是多少 |
| 3 | DNS 服务器返回 IP 地址 |
| 4 | 设备根据 IP 地址,去连接真正的服务器 |
注意:第 2 步的查询,和第 4 步的连接,是两个独立的动作。代理接管了第 4 步,不代表第 2 步也被接管。术语见 DNS 泄露 一条。
什么是dns泄露:哪一步漏了
| 情形 | 域名查询去了哪里 | 结果 |
|---|---|---|
| 正常:查询也经过代理 | 由代理一侧的 DNS 处理 | 本地网络看不到你查询了什么 |
| 泄露:查询没经过代理 | 由本地网络的 DNS 服务器处理 | 本地网络能看到你查询的域名 |
打个比方:你托人去另一个城市买东西(代理),但出门前在本地的问讯处问了一圈“那家店的地址是什么”(DNS 查询)。人虽然去了远方,问讯处却记下了你问的是哪家店。
泄露的是域名信息,而不是网页内容。网页内容是否被看到,取决于连接是否加密。
dns泄漏的常见成因
| 成因 | 说明 |
|---|---|
| 客户端只代理了连接,没有接管 DNS | 域名查询仍走系统默认的 DNS |
| 分流规则里,某些域名被设为直连,其查询也走本地 | 规则设置与预期不符 |
| 系统或浏览器自己配置了 DNS | 绕过了客户端的设置 |
| 应用自己做了解析 | 某些应用不使用系统 DNS |
| 虚拟网卡模式没有开启或设置不当 | 部分流量未被接管 |
分流规则的概念读 规则分流是什么,接管全部流量的模式读 TUN 模式是什么。
与dns污染的区别
很多人把这两个词混着用,其实关注的方向完全不同:
| 对比项 | DNS 泄露 | DNS 污染 |
|---|---|---|
| 问题的本质 | 查询被谁看到 | 查询得到了错误的结果 |
| 影响 | 隐私:域名信息暴露给本地网络 | 可用性:访问到错误地址或打不开 |
| 表现 | 通常没有任何异常,需要检测才知道 | 网站打不开或打开了错误的页面 |
| 处理方向 | 让域名查询也走代理 | 使用可靠的解析方式 |
两者可能同时存在:一次域名查询既被本地网络看到,又得到了错误结果。判断时分开看,各自处理。
DNS泄露在哪些场景下更值得留意
| 场景 | 为什么值得留意 |
|---|---|
| 使用公共网络或他人管理的网络 | 网络管理者可能看到域名查询 |
| 公司或学校的网络 | 网络可能有日志,查询记录会留在其中 |
| 对访问记录比较在意 | 域名本身也是隐私信息 |
| 同时使用多个代理或客户端 | 设置叠加,更容易出现遗漏 |
如果你在家里的网络、只是普通浏览,影响通常较小,了解并按需处理即可,不必为此焦虑。
怎么自查
| 步骤 | 做什么 |
|---|---|
| 1 | 开启代理 |
| 2 | 使用 DNS 泄露检测工具,查看显示的 DNS 服务器 |
| 3 | 判断归属:是代理一侧的,还是本地运营商的 |
| 4 | 换节点、换模式(系统代理与 TUN)各测一次 |
| 5 | 记录结果,修改设置后再测 |
站内有专门的教程:DNS 泄露怎么检测。要强调的是:一次检测只反映当时的状态,换网络、换模式后结果可能不同,也不能证明永远没有泄露。
怎么修正:几个方向
具体选项因客户端而异,大致思路有:
- 在客户端里开启 DNS 接管,让域名查询也通过代理一侧处理;
- 检查分流规则,确认需要走代理的域名,其查询也不走本地;
- 视情况开启虚拟网卡(TUN)模式,接管更多流量;
- 检查系统和浏览器里是否手动指定了 DNS,必要时改回默认;
- 修改后重新检测,确认效果。
修正的具体操作,以所用客户端的说明为准,比如 Clash TUN 模式设置。调整后如果出现部分网站打不开,说明设置与规则有冲突,读 系统代理开了没反应 排查。
修正之后,怎么确认真的生效
- 保持修改后的设置,重新做一次检测;
- 再换一个节点、换一种代理模式各测一次,因为不同模式下结果可能不同;
- 检测页面上显示的 DNS 服务器,若仍是本地运营商的,说明还有遗漏;
- 同时用常用的浏览器和应用访问几个网站,确认没有出现异常或打不开;
- 把修改前后的结果截图留存,下次出问题时可以对照。
关于风险,别夸大也别忽视
| 看法 | 更合理的态度 |
|---|---|
| “泄露了就完了” | 泄露的是域名查询,而非网页内容,影响因人而异 |
| “我没有秘密,不用管” | 域名记录本身也是隐私信息,了解并选择是否处理即可 |
| “开了代理就绝对没有泄露” | 取决于设置,需要检测 |
隐私是一个整体问题,DNS 只是其中一环,更全面的判断读 机场安全怎么判断。
几个常见的误解
- **“DNS 泄露会暴露网页内容。”**暴露的是域名信息;
- **“泄露和污染是同一回事。”**一个关乎隐私,一个关乎可用性;
- **“开了代理就不会泄露。”**取决于客户端设置;
- **“检测一次没问题就永远没问题。”**换网络、换模式要重测;
- **“修了设置就一劳永逸。”**更新客户端或换节点后,建议再检测一次。
下一步
先用站内教程做一次DNS泄露检测,看看你当前的设置是什么状态;如果有泄露,再按上面的方向调整。想按条件筛选机场,用 选机场向导。DNS泄露不是一个吓人的词,它只是提醒你:代理管的是“连接”,而“查询”需要你单独确认。
- 本文用通俗方式解释 DNS 与泄露原理,不涉及 DNS 协议实现细节,细节请以专业资料为准。
- 检测结果受网络环境影响,一次检测不能代表长期状态,也不能证明绝对没有泄露。
- 具体的修正选项因客户端而异,请以所用客户端的说明为准,本文只讲思路。
本文引用的官方来源
这篇的几个常见问题
DNS 泄露到底泄露了什么?
泄露的是你查询了哪些域名这一信息,而不是网页内容。域名查询如果由本地网络的 DNS 服务器处理,本地网络就能看到你想访问哪些网站,即使之后的连接走了代理。网页内容是否可见,取决于连接是否加密,与 DNS 泄露是两回事。
DNS 泄露和 DNS 污染是一回事吗?
不是。泄露讲的是查询去了哪里,被谁看到;污染讲的是查询得到了错误的结果,比如把域名解析到了不对的地址。两者可能同时出现,也可能只出现一个,处理办法也不同。一个关乎隐私,一个关乎能否正常访问。
用了代理就不会 DNS 泄露吗?
不一定。代理转发的是连接,域名查询是否也经过代理,要看客户端的设置和分流规则。有的设置下,域名查询仍由本地网络处理,就会出现泄露。可以用站内的检测方法自查,再根据结果调整客户端的 DNS 相关设置。
怎么检测自己有没有 DNS 泄露?
在代理开启的状态下,使用 DNS 泄露检测工具查看显示的 DNS 服务器归属,如果显示的是本地运营商的服务器,说明查询没有走代理。站内有对应的检测教程,建议在不同网络和不同模式下各测一次,并记录结果。