抓包分析DNS:配置Windows和浏览器开启DoH保护隐私

不知各位平时上网有没有想过,为啥路由器后台能够看见你使用了什么应用、访问了什么网站呢?访问任何网站之前,系统几乎都会先发起一次 DNS 查询。DNS 本身像互联网的“电话簿”,负责把 bing.com 这样的域名翻译成机器真正访问的 IP 地址。
不过问题在于,传统DNS默认使用UDP 53端口长期以明文方式传输,路由器、旁路观察者、运营商、公共 Wi‑Fi 提供方,甚至某些中间设备,都能看到你的设备访问过哪些网站。
如此,本期的主题介绍DoH和DoT这类“加密 DNS”协议,并通过抓包分析,解决此类痛点。

DNS 为什么和个人隐私安全有关

当你在浏览器里输入一个网址时,浏览器或系统通常要先问DNS服务器:“这个域名对应哪个 IP?
如果这一步是明文的,那么网络中的第三方就可能知道你准备访问哪些站点,即使网页本身后来是 HTTPS,加密的也只是网页内容,不包括最前面的 DNS 查询。
许多官方文件都有指出,传统DNS使用未加密的 UDP 或 TCP 通过 53 端口传输,因此容易受到被动监听、流量分析和主动操控。带来几类现实影响:

  • 隐私暴露:别人未必能看到你网页里具体看了什么,但可能知道你访问了哪些域名。

  • 被动画像:长期的 DNS 查询记录足以勾勒出你的兴趣、工作方向、常用服务和活跃时间段。

  • 篡改或劫持:如果网络中的设备能干预明文DNS,就可能把你导向错误页面,或者插入广告、跳转和拦截。特别是在酒店、咖啡馆、机场这类环境中。[1]

DoH 和 DoT

  • 为了解决传统 DNS 明文传输的问题,IETF 推出了两类主流加密 DNS 标准:DoT 和 DoH。

  • DoH DNS over HTTPS是通过HTTPS协议加密DNS查询的协议。它将DNS查询封装在HTTPS请求中,使用HTTPS的默认端口443进行通信。

  • DoT DNS over TLS则是通过TLS(传输层安全协议)加密DNS查询的协议。它使用TCP作为基本连接协议,并通过TLS进行加密和身份验证。DOT的默认端口是853。

  • 它们的作用都一样,把 DNS 查询加密,减少窃听、篡改和分析风险,可以简单理解成两种不同的“加密送信方式”。所以,DoH/DoT 的核心不是提升dns查询速度的,而是让你的DNS查询更加安全。

DoH和DoT的区别

列表 DoT DoH
全称 DNS over TLS DNS over HTTPS
传输方式 直接在 TLS 上承载 DNS 通过 HTTPS 承载 DNS
默认端口 853 443
流量特征 更容易被识别为 DNS 加密流量 更像普通 HTTPS 流量
常见位置 系统、网络设备、专用DNS客户端 浏览器、系统客户端、应用层

对比来看,这也是为什么DoH在浏览器生态里非常常见,不需要专门的客户端,且已经被Edge、Chrome、Firefox这些主流的浏览器整合在设置里。

支持DoH的服务商

并不是所有的DNS服务器都支持DoH/DoT,运营商分配给你的默认DNS或者公司内网的服务器几乎都不支持,这里整理了主流支持的公共DNS服务商;另外多一嘴,选择信任的、主流的DoH地址是比较靠谱的,虽然加密了但是不代表提供服务商看不见。[2]

Windows上配置DoH

综上,那么对我们个人来说,要加密DNS使用DoH就行了;如果是网络工程(比如我)或者有软路由等场景DoT也可以。[3]
目前Windows 11已支持DoH,只需要在网络设置里手动指定支持 DoH 的 DNS 服务器,并启用加密查询,这里以阿里云地址(主)腾讯云地址(备)为例。

  1. 设置,进入网络和 Internet

  2. 打开当前正在使用的网络连接,WiFi和有线连接不同。

  3. 找到 DNS 设置,将DNS改为手动,填入支持DoH的DNS地址;再把DNS over HTTPS选项设为启用。


  4. IPv6也是一样

这个咋看有没有生效呢?如果你出了某些问题那么估计就是配置错了 :roll_eyes:至少图片里面是没有问题的,如图均显示已加密,仅仅代表DoH开关开了。

Edge浏览器配置 DoH

经过测试,Windows 开了DoH,浏览器没生效,我细问了AI原因,说人话就是考虑到性能和安全性,把模块直接放到浏览器中了,所以要单独配置一下。设置完成后清理浏览器缓存,再访问网页是否正常。页面速达地址 :right_anger_bubble:

edge://settings/privacy/security

Chrome浏览器配置 DoH

照葫芦画瓢

chrome://settings/security

firefox浏览器配置 DoH

都用firefox了,应该能找到吧(主要是我没有安装),其他浏览器都一样在相关设置选项里面,这里就不一一截图展示了。

抓包分析

最后再抓包分析一下,看一下使用DoH加密前后的效果。
这四个包是没有配置DoH加密的时候抓到的dns查询包,可以明文查看我要查询cn.bing.com这个域名的服务器地址; 2741这个包一样不过查询的是v6记录。
包 2745显示我的dns服务器254回复我了,查询到了cn.bing.com这个域名的cname记录,并返回了cname记录中的最终服务器IP地址,从此也能看见bing是使用了cdn做内容分发,且在包2746返回了空的AAAA记录说明cn.bing.com不支持IPv6访问。

加密分析

加密过后,由图可见包1462~1466 TCP 三次握手包,从原来的内网地址53端口变成阿里云的DNS地址443端口。但是这并不代表加密了对吧?就是tcp建立而已,我们接着往下看。

包 1468~1469可以看见TLS握手开始,客户端发Client Hello, SNI字段是明文的,显示 dns.alidns.com,说明我要访问的是这个域名,是不是和我们刚才配置DoH的一样?

最后,包 1471~1476,完成握手:handshake:确定大家用的TLS版本是1.3,之后所有的数据都变成Application Data,然后就是大量的DATA,点开看,显示全是加密了的数据,就算被抓包也没用。

总结

从实际出发的角度来看,如果平常只是自己家里的设备看看抖音、日常上网啥的,我觉得舍弃了UDP的速度是不太值的,毕竟使用DoH要发多少个包,还得先把手握上,对安全和隐私保护这方面没有太大价值的,反而导致使用了错误的地址阿、上不了网啊,回头:博主你这分享的我电脑上不了网了,我网页打不开了,我应用用不了了 :rofl: :rofl: :rofl:开个玩笑
当然如果你和我一样,能接受这个性能损耗带来的安全和隐私,或者在单位、在公司里有什么网站DNS过滤啥的,可以试试会有意想不到的结果。
另外写到最后,不限速的DoH查询地址某些大厂是免费提供的,可以了解一下,长期个人使用效果要好的多,不会担心QPS限速的问题。本篇文章攥写总结了约6个小时,觉得有帮助的话可以点赞 :heart_decoration:支持一下。如果有一些错误的地方请多指教。

版权声明:原创文章,引用请注明原文链接,不允许全文复制粘贴。


  1. 微软说明中提到,DoH 的 DNS 流量会和其他 HTTPS 流量混合,从而降低遭到特定 DNS 过滤或操控的风险。 ↩︎

  2. 在国内就用国内的dns比较快,国外的dns网络情况不怎么好,国外dns不限速,腾讯和阿里云公共dns有限速。 ↩︎

  3. 只要 Windows 成功启用了 DoH,那么使用系统 DNS 客户端的应用,理论上就能从系统层受益。 ↩︎

1 个赞

篇幅长就忘了,还有一个DoQ DNS over QUIC协议忘记提了,最新一代的加密协议,弱网表现更好。目前已知支持的服务商AdGuard DNS、Cloudflare、Quad9(2026 年 4 月刚支持),如果装了AdGuard Home可以试试