帮助中心 >
  关于网络安全 >
  浏览器开启DoH就能防DNS污染?原理与实测效果

浏览器开启DoH就能防DNS污染?原理与实测效果

时间 : 2026-09-07 15:52:09
编辑 : DNS.COM

  DNS over HTTPS(DoH)是一种DNS加密协议,它的核心逻辑很简单:把原本明文传输的DNS查询请求,封装进HTTPS协议里,通过443端口发送出去。

  传统DNS查询走的是UDP 53端口,数据包是明文的。你在浏览器里敲了个网址,这个查询请求从你电脑发到DNS服务器的过程中,中间任何节点——运营商、公共Wi-Fi提供方、局域网里的其他人——都能看到你在查什么域名,甚至能篡改响应结果。

  DoH的做法是:给这个查询过程套上一层TLS加密。你的查询请求先经过加密,再发到支持DoH的DNS服务器,服务器解密后执行查询,再把结果加密回传给你。

  这个过程能防住什么?防的是“中间人偷看和篡改”。它保证了从你设备到DNS服务器这一段路上,没有人能知道你查了什么域名,也没有人能往响应包里塞假数据。

  但“DNS污染”发生在哪一环

  DNS污染通常发生在DNS响应包被篡改这个环节。攻击者不需要控制你的设备,也不需要控制权威DNS服务器,只需要在你和DNS服务器之间的链路上“抢答”——截获你的DNS查询请求,抢在真响应回来之前,伪造一个响应包塞给你。

  这个伪造的响应包里,把你想要的域名指向了一个错误的IP地址,比如钓鱼网站或者一个无法访问的地址。

  传统明文DNS下,这种攻击很容易。因为响应包没有加密,也没有签名验证,你收到一个包,只要事务ID对得上,就当作是真的了。

  DoH能否防住DNS污染——分情况说

  能防的情况:链路中间劫持

  如果你的DNS查询请求和响应走的是加密通道(DoH),中间节点看到的是一串加密的HTTPS流量,解析不出里面的DNS查询内容,也无法篡改——因为TLS加密保证了数据的完整性和真实性。

  实测数据也印证了这一点:在存在DNS污染的网络环境中,启用DoH后错误解析率可以从平均12.7%降至0.3%以下。Mozilla与Cloudflare联合发布的实测数据也显示,启用DoH后DNS查询泄露风险下降超过95%。

  结论:如果你的DNS污染是由链路中间人(比如运营商、公共Wi-Fi的恶意节点)发起的,DoH能有效防御。

  防不住的情况:权威侧污染或服务器被墙

  DoH不是万能的。它的保护范围仅限于“你设备到DoH服务器”这一段。

  如果权威DNS服务器本身被篡改,DoH服务器拿到的是错误解析结果,照样会把错误结果加密回传给你。DoH管不着权威侧的事。

  更关键的情况:你连DoH服务器都连不上。在某些网络环境中,DoH服务器本身的IP或域名可能被阻断。具体来说,就是向知名DoH服务商发起的TLS连接可能遭受干扰或阻断,导致DoH请求根本无法到达服务器。如果连不上DoH服务器,浏览器会回退到明文DNS(取决于浏览器设置),这时候DoH的加密保护就失效了。

  有用户实测反馈过这种情况:在特定网络环境下,Google和Cloudflare的DoH服务确实存在可用性问题,而即使成功建立了DoH连接,部分境外域名仍然无法正常解析,这说明污染或阻断可能发生在DoH服务器与权威DNS之间的环节,超出了DoH能覆盖的范围。

  结论:如果污染发生在权威侧,或者DoH服务器本身被阻断,DoH解决不了问题。

  浏览器端如何配置DoH

  Chrome浏览器

  地址栏输入chrome://settings/security,找到“使用安全DNS”选项,开启后选择“自定义”,填入DoH接入点地址(如https://dns.cloudflare.com/dns-query)。

  Firefox浏览器

  地址栏输入about:preferences#privacy,滚动到“基于HTTPS的DNS”部分。有三种保护级别可选:

  默认保护:在支持地区自动启用,出问题回退到系统DNS

  增强保护:强制使用DoH,仅在提供商故障时切换

  最大保护:强制使用DoH,连接失败则显示安全警告页

  Edge浏览器

  地址栏输入edge://settings/privacy,开启“使用安全的DNS指定如何查找网站的网络地址”,然后选择服务提供商或自定义DoH接入点。

  一个关键陷阱:DoH不代表解析结果正确

  很多人开启DoH后发现,被污染的网站还是打不开,于是觉得DoH没用。

  问题出在一个常见误解:DoH解决的是“传输安全”,不是“解析结果正确”。DoH的加密特性确保了DNS查询从你的设备发出后不会被中间人修改,但它不会改变权威DNS服务器返回的解析内容本身。

  如果你的DoH服务器在某个地区被要求对特定域名执行污染,那DoH服务器返回的结果本身就是污染后的结果——只不过这段路是加密传输的而已。

  有用户用了一个很形象的比喻:“DoH只是防止运营商给你加料罢了,没有别的好处加成”。DNS解析结果和明文DNS获取到的一样,该污染的还是污染。

  实测效果与场景分析

  场景一:公共Wi-Fi/校园网(效果好)

  在这些网络环境中,DNS劫持通常发生在本地链路层——公共Wi-Fi的网关或校园网的防火墙会对UDP 53端口的明文查询做篡改。开启DoH后,查询走HTTPS加密,本地中间人看不到内容也改不了包,效果非常明显。有实测显示,启用DoH后页面加载首屏时间缩短18%,错误重定向率下降91%。

  场景二:运营商级别污染(部分有效)

  如果运营商在骨干网层面做DNS劫持(比如把某些域名的解析结果强制改成缓存服务器的IP),DoH能绕过——前提是你能成功连接到DoH服务器,且该服务器返回的是真实解析结果。如果运营商进一步对DoH服务器的443端口做干扰或阻断,那就连不上了。

  场景三:权威侧污染或境外域名被阻(无效)

  DoH解决不了这个问题。即使DoH正常工作,解析结果依然受限于DoH服务商自己的递归解析链路。

  什么情况DoH反而帮不上忙

  网站服务器IP被直接阻断:DoH只负责把域名翻译成IP,翻译完了你还要去连接那个IP,如果IP本身被阻断了,DoH帮不上忙。

  你所在地区对DoH服务器做干扰:比如网络环境会对境外DoH服务的TLS握手进行深度包检测(DPI)干扰,导致连接超时。

  使用境内DoH服务商:部分境内DoH服务商按规定需要对某些域名做同样的解析限制,换DoH只是换了传传输方式,解析结果没变。

  一句话结论:DoH能防的DNS污染,是“你到DNS服务器这段路被人动了手脚”那种。它能保证你查的东西没被中间人改过。但如果DNS服务器本身就是污染源、或者你连这个服务器都连不上,那就不是DoH能解决的问题了。

DNS Anna
DNS Amy
DNS NOC
标题
电子邮件地址
类型
信息
验证码
提交