不知各位平时上网有没有想过,为啥路由器后台能够看见你使用了什么应用、访问了什么网站呢?访问任何网站之前,系统几乎都会先发起一次 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]
| 服务商 | DNS | DoH 地址 |
|---|---|---|
| 阿里DNS | 223.5.5.5 | https://dns.alidns.com/dns-query |
| 腾讯DNSPod | 119.29.29.29 | https://doh.pub/dns-query |
| Cloudflare | 1.1.1.1 | https://cloudflare-dns.com/dns-query |
| 8.8.8.8 | https://dns.google/dns-query | |
| Quad9 | 9.9.9.9 | https://dns.quad9.net/dns-query |
Windows上配置DoH
综上,那么对我们个人来说,要加密DNS使用DoH就行了;如果是网络工程(比如我)或者有软路由等场景DoT也可以。[3]
目前Windows 11已支持DoH,只需要在网络设置里手动指定支持 DoH 的 DNS 服务器,并启用加密查询,这里以阿里云地址(主)腾讯云地址(备)为例。
-
设置,进入网络和 Internet。
-
打开当前正在使用的网络连接,WiFi和有线连接不同。
-
找到 DNS 设置,将DNS改为手动,填入支持DoH的DNS地址;再把DNS over HTTPS选项设为启用。
-
IPv6也是一样
这个咋看有没有生效呢?如果你出了某些问题那么估计就是配置错了
至少图片里面是没有问题的,如图均显示已加密,仅仅代表DoH开关开了。
Edge浏览器配置 DoH
经过测试,Windows 开了DoH,浏览器没生效,我细问了AI原因,说人话就是考虑到性能和安全性,把模块直接放到浏览器中了,所以要单独配置一下。设置完成后清理浏览器缓存,再访问网页是否正常。页面速达地址 ![]()
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,完成握手
确定大家用的TLS版本是1.3,之后所有的数据都变成Application Data,然后就是大量的DATA,点开看,显示全是加密了的数据,就算被抓包也没用。
总结
从实际出发的角度来看,如果平常只是自己家里的设备看看抖音、日常上网啥的,我觉得舍弃了UDP的速度是不太值的,毕竟使用DoH要发多少个包,还得先把手握上,对安全和隐私保护这方面没有太大价值的,反而导致使用了错误的地址阿、上不了网啊,回头:博主你这分享的我电脑上不了网了,我网页打不开了,我应用用不了了
开个玩笑
当然如果你和我一样,能接受这个性能损耗带来的安全和隐私,或者在单位、在公司里有什么网站DNS过滤啥的,可以试试会有意想不到的结果。
另外写到最后,不限速的DoH查询地址某些大厂是免费提供的,可以了解一下,长期个人使用效果要好的多,不会担心QPS限速的问题。本篇文章攥写总结了约6个小时,觉得有帮助的话可以点赞
支持一下。如果有一些错误的地方请多指教。
版权声明:原创文章,引用请注明原文链接,不允许全文复制粘贴。










