DNS 泄露检测

你访问的每一个网址,都要先由某台 DNS 服务器翻译成 IP 才能连上—— 那台服务器因此拿到了一份你访问过的域名清单。 代理和 VPN 常常只接管了网页流量,把这一步留在了原地: 网站看到的是代理出口,运营商看到的却是你的浏览历史。 下面向本站自持的权威 DNS 发起 8 个一次性随机子域解析,把真正替你查询的那几台服务器揪出来。

解析要经过你的递归服务器再到本站权威侧,整个过程约十几秒。

出口与解析对照

HTTP 可见地址
216.73.217.85
出口归属
尚未检测
捕获到的解析器
尚未检测

替你查询的 DNS 服务器

还没有开始检测。点击上方按钮,本页会解析 8 个随机子域, 再从权威侧把来问过的服务器列在这里。

什么是 DNS 泄露

打开一个网址时,真正的第一步不是连接,而是翻译: 你的设备要先问一台 DNS 服务器「这个域名对应哪个 IP」,拿到答案才知道该往哪里发包。 承担这一步的叫递归解析器,通常是运营商自动下发的那一台, 也可能是你手动填进去的 8.8.8.8、1.1.1.1、223.5.5.5。 它顺着根、顶级域、权威服务器一路问下来,最后把结果交还给你。

问题在于:这一步和「网页流量走不走代理」是两件独立的事。 浏览器插件式代理只接管 HTTP(S) 请求,一部分只改路由不改 DNS 配置的 VPN 客户端同样如此。 于是出现了这样的局面——网站那一头看到的是代理出口的地址, 而你的运营商手上握着一份完整的、按时间排序的域名访问清单。 这就是 DNS 泄露(DNS Leak)。

值得强调的是,DNS 泄露暴露的信息在某些场景下比 IP 泄露更具体。 IP 只说明「你在哪」,域名清单说明「你在看什么」。 它不需要解密任何流量,也不受 HTTPS 保护——加密的是连接内容,不是你问过哪个域名。

这次检测做了什么

  1. 浏览器生成一个 16 位随机 token,拼出 8 个互不相同的一次性子域,形如 1-a1b2c3d4.{token}.dnsleak.ip.cx
  2. 逐个发起解析。这些名字从未在任何地方出现过,所以全世界没有一个缓存里有它们—— 每一个都必须由你的递归解析器亲自跑到本站的权威服务器上来问。
  3. 本站持有 dnsleak.ip.cx 这个区的权威服务, 收到查询时把来问的那个地址连同 token 记下来。
  4. 页面按 token 轮询取回名单,为每个地址补上归属地、ISP 与 ASN, 再和你的 HTTP 出口做对照,得出结论。

为什么要发 8 个而不是一个:公共 DNS 的递归侧是一整片机器, 一次查询由哪一台出去是随机的,只发一个你就只会看到其中一台。 多发几个才能显示出这个池子的真实规模——它们全都拿到了你要访问的域名。 子域用完即弃,也从根本上避开了缓存:任何一层缓存命中,这次检测就白做了。

怎么读检测结果

如果结果里出现了 ECS 一项,那是解析器主动把你所在的网段 (EDNS Client Subnet,RFC 7871)告诉了本站权威服务器。它的本意是让 CDN 就近调度, 代价是每一个权威服务器都会顺带知道你大致在哪个网段——即便 DNS 本身并没有跨境。

如何防止 DNS 泄露

改完之后回到本页重测一次即可验证——每次检测用的都是全新的随机子域, 不会读到上一次的任何缓存。

常见问题

挂着 VPN,为什么 DNS 还是走运营商?
因为解析发生在连接之前。系统要先把域名换成 IP 才知道该往哪里发包,而「用哪台 DNS」是由网卡配置决定的——只接管 HTTP(S) 的浏览器插件式代理、甚至一部分只改路由不改 DNS 的 VPN 客户端,都不会动那份配置。结果就是:网站看到的是代理出口,你的运营商却拿到了你访问过的每一个域名。
检测出来的地址和我填的 8.8.8.8 对不上,是不是测错了?
没测错,这正是这项检测最容易被误读的地方。8.8.8.8 是你提交查询的入口,而权威服务器看到的是 Google 递归集群发出查询的那台机器的出口地址,通常落在 74.125.x 或 172.253.x 上。两者属于同一家、同一个 ASN,但从来不是同一个地址。本页因此按 ASN 而不是按 IP 来认服务商。
为什么一次检测会冒出好几台解析器?
公共 DNS 的递归侧是一大片机器,一次查询由哪一台出去是随机的;很多系统还会同时配置主备两组 DNS。本页刻意发起多个互不相同的随机子域,就是为了把这个池子的规模显示出来——它们全都拿到了你要访问的域名。
开了 DoH / DoT 加密 DNS,还需要测吗?
需要,而且结论可能和你以为的不一样。加密解决的是「路上有没有人偷看」,不解决「最终由谁来查」——DoH 只是把明文查询换成了到某一家服务商的 HTTPS 请求,那家服务商照样知道你在访问什么。本页测的正是后者:谁最终替你敲了权威服务器的门。
本站会保存 DNS 检测结果吗?
不会。一次检测只在 Redis 里留下「某个随机 token 对应哪几个解析器出口地址」,默认 10 分钟后自动清除,且不与访客身份关联。被解析的子域是一次性的随机串,检测结束即失效。