DNS污染和DNS泄露是什么?

DNS污染指域名解析结果被篡改,导致你被引导到错误的地址;DNS泄露指开启代理后域名解析请求仍然走本地网络而未经过代理,导致运营商仍能看到你访问的域名,两者是不同的问题,但都会影响代理使用的效果和隐私性。

先分清两个概念

DNS污染和DNS泄露虽然都涉及域名解析(DNS,把网址转换成IP地址的过程),但问题性质完全不同,很多人会把两者混为一谈。

DNS污染

DNS污染(也叫DNS劫持)指域名解析的结果被中间网络设备篡改或伪造。正常情况下,你查询一个域名应该得到该网站真实的IP地址,但如果查询过程中被劫持,返回的可能是一个错误的、甚至是被指向到无法访问或错误内容的IP地址。这种情况下,即使你的设备本身没有问题,也可能因为拿到了错误的解析结果而无法正常访问目标网站。

DNS泄露

DNS泄露指的是另一个问题:即使你已经开启了VPN或代理,理论上所有流量(包括DNS查询)都应该经过加密隧道转发,但如果客户端配置不当,域名解析请求可能仍然直接发送到你本地网络运营商的DNS服务器,而没有经过代理。这意味着,即使你访问网站的实际数据走了代理、显示的IP地址变了,运营商仍然能通过DNS请求记录知道你查询过哪些域名——代理的隐私保护效果因此打了折扣。

为什么会出现DNS泄露

常见原因包括:客户端的分流规则里没有正确处理DNS流量、操作系统在某些情况下会绕过客户端设置直接使用系统默认DNS、或者使用了不支持“DNS按代理转发”功能的客户端/配置模式。

怎么减少这两类问题

具体客户端里怎么配置DNS相关选项,可以参考Clash基础教程,不同客户端的具体设置项名称可能不完全一样。

常见问题

怎么知道自己有没有DNS泄露?

可以在开启代理的情况下,访问一些专门检测DNS泄露的网站,查看显示的DNS服务器归属地是否和你所在地一致——如果代理连接的是境外节点,但检测结果显示的DNS服务器仍在你本地运营商,通常意味着存在DNS泄露。