DNS 解析原理与 DoH / DoT / DoQ 详解:DNS 污染和 DNS 泄露怎么防
导读摘要:从一次域名查询的完整过程讲起,说明 DNS 污染和 DNS 泄露分别是什么、为什么会发生,对比 DoT、DoH、DoQ 三种加密 DNS 的端口和优缺点,并给出在代理客户端中防泄露的配置思路和检测方法。
简短回答:DNS 负责把域名翻译成 IP。DNS 污染是查询被抢先回复了假结果,DNS 泄露是开着代理时查询仍发给了本地运营商。解决思路是:国内域名用国内 DNS,国外域名用加密 DNS(DoH/DoT/DoQ)或交给代理远端解析,并在客户端开启 Fake-IP 或 TUN 模式接管全部查询。
一、一次 DNS 查询是怎么完成的
- 你的设备向递归解析器(通常是运营商 DNS 或 223.5.5.5 这类公共 DNS)发起查询,这一步叫递归查询:解析器要负责给出最终答案;
- 解析器依次询问根服务器(告诉它 .com 由谁负责)、顶级域服务器(告诉它 example.com 由谁负责)和权威服务器(给出最终 IP),这一步叫迭代查询;
- 解析器把结果返回给你,并按记录的 TTL(有效时间)缓存,下次同样的查询直接返回缓存。
全球根服务器共有 13 个名称(A 到 M),由 12 家机构运营,借助任播技术在全球部署了上千个实例,所以「只有 13 台根服务器」的说法并不准确。
二、DNS 污染与 DNS 泄露
DNS 污染:传统 DNS 使用 UDP 53 端口明文传输,没有校验。网络中间设备看到特定域名的查询后,可以抢在真实服务器之前返回一个错误 IP,设备会采用最先到达的结果,于是网站无法访问。
DNS 泄露:代理只转发了连接,但域名查询仍由系统发给本地运营商 DNS。别人虽然看不到你访问的内容,却能从 DNS 记录知道你访问了哪些域名,同时还可能拿到被污染的结果。
三、加密 DNS:DoT、DoH、DoQ 对比
| 协议 | 端口 | 传输 | 优点 | 缺点 |
|---|---|---|---|---|
| DoT(RFC 7858) | TCP 853 | TLS | 标准清晰,系统支持多(如安卓「私人 DNS」) | 专用端口,容易被识别和封锁 |
| DoH(RFC 8484) | TCP 443 | HTTPS | 和网页流量混在一起,不易被单独封锁,浏览器原生支持 | 开销略大 |
| DoQ(RFC 9250) | UDP 853 | QUIC | 握手快,弱网和移动网络表现好 | 支持的服务器和客户端较少,UDP 可能被限速 |
加密 DNS 解决的是「被篡改」和「被看到」,但如果加密 DNS 服务器本身在国内无法直连,查询依然会失败,所以通常要和代理配合使用。
四、在代理客户端里防止泄露
以 Clash / Mihomo 为例,思路是 DNS 分流:
dns:
enable: true
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
nameserver: # 默认:国内 DNS,解析国内域名快
- https://223.5.5.5/dns-query
- https://doh.pub/dns-query
nameserver-policy: # 国外域名交给海外加密 DNS
"geosite:geolocation-!cn":
- https://1.1.1.1/dns-query
- https://dns.google/dns-query
开启 Fake-IP 后,命中代理规则的域名不会在本地真正解析,而是把域名交给远端服务器解析(即「远端解析」),本地不会产生这些域名的明文查询。再开启 TUN 模式,让所有软件的 DNS 请求都经过 Clash。完整配置讲解见 Clash 使用手册。
如果想在全家设备上统一处理,可以在路由器上部署 AdGuardHome 或 SmartDNS,参见AdGuardHome + SmartDNS 配置。
五、怎么检测是否泄露
- 开启代理后访问
browserleaks.com/dns或dnsleaktest.com,运行扩展测试; - 结果里只出现代理出口所在地区或你配置的海外 DNS 服务商,说明正常;
- 如果出现本地运营商的 DNS 服务器,说明仍有查询绕过了代理,检查是否开启了 TUN、浏览器是否设置了独立的 DNS。
常见问题
DNS 污染和 DNS 泄露有什么区别?
污染是你收到了被篡改的错误解析结果,导致网站打不开;泄露是你在使用代理时,DNS 查询仍然发给了本地运营商,暴露了你要访问的域名。前者影响能不能访问,后者影响隐私。
开了 DoH 还会泄露吗?
浏览器开启 DoH 只保护浏览器自己的查询,其他软件仍可能用系统 DNS。代理客户端里配置好 DNS 并开启 TUN 模式,才能接管整台设备的查询。
国内网站也要用国外 DNS 吗?
不建议。国内域名用国内 DNS 解析,才能拿到离你最近的 CDN 节点;国外域名再交给加密 DNS 或通过代理解析,这就是常说的 DNS 分流。
💡 机场情报局精选推荐:高品质海外节点与 IEPL 专线是流畅访问的基础,欢迎查阅我们的实时评测:【2026 稳定高速机场推荐榜单】。