网站检测DNS泄漏的原理及DoH启用后仍可识别DNS服务商的技术疑问
网站检测DNS泄漏的原理及DoH启用后仍可识别DNS服务商的技术疑问
嘿,这个问题问到点子上了,我来给你拆解清楚这俩事儿~
一、DNS泄漏检测网站的基本原理
这类网站的核心逻辑其实很简单,靠的是特制域名的解析请求追踪:
- 网站会预先生成一批只有自己掌控的、独一无二的域名(比如
abc123.dnstest.example这类),这些域名的DNS记录只存在于网站自己的服务器上。 - 当你打开检测页面时,网站会悄悄在页面里嵌入这些域名的资源请求(比如一张透明小图、一段无意义脚本),你的浏览器会自动发起DNS查询去解析这些域名。
- 网站的后端服务器会记录下来是哪个DNS服务器发来的解析请求,通过这个请求的来源IP,就能反向查到对应的DNS服务商——毕竟每个公共DNS服务商的IP段都是公开可查的。
二、为什么开了DNS over HTTPS(DoH)还能被正确识别?
这其实分几种常见情况,你可以对照看看:
- DoH配置没完全生效:很多时候我们以为开了DoH,但实际浏览器/系统的DNS设置没同步——比如系统开了DoH,但浏览器还是用自己单独设置的普通DNS;或者有些工具(比如VPN、代理)又把DNS给覆盖了。这种情况下,你的DNS请求还是走的原来的服务商,自然会被检测到。
- DoH服务器本身就是原服务商提供的:如果你只是把普通DNS换成了同一家服务商的DoH地址(比如原来用某运营商的普通DNS,现在换成他们的DoH端点),那检测到的服务商当然还是同一个呀。
- EDNS Client Subnet(ECS)在“泄密”:这是最核心的原因之一。很多DoH服务器在向上游DNS转发请求时,会带上你的子网信息(ECS字段),用来让上游返回更精准的就近资源。检测网站可以结合这个子网信息,再加上DoH服务器的IP归属,反向匹配到你正在使用的DoH服务商——毕竟每家服务商的DoH端点IP段也是固定可查的。
备注:内容来源于stack exchange,提问作者atbug
相关产品推荐
相关产品推荐

