IP 检测台

你的 DNS泄露了吗?

打开网站之前,浏览器要先把域名交给一台 DNS 服务器去解析。页面让浏览器解析一组只用这一次的随机域名,再从我们的域名服务器那里看是谁来问的:开着代理,却有国内运营商的 DNS 服务器出现,你访问了哪些网站,国内 DNS 那边就看得到。

正在获取代理出口…

正在检测…

浏览器正在解析测试域名,通常 5 秒内完成。

替你解析域名的 DNS 服务器

  • 检测完成后显示。

检测原理

DNS 查询是一层层转交的。你的设备把域名交给一台递归 DNS 服务器(运营商的、公共的,或者代理节点所在机房的),它再去问这个域名的权威服务器。本页用的测试域名,权威服务器是我们自己的,所以能看到最后是哪台递归服务器来问的。

  • 没有泄露域名跟着代理走
    你的设备 代理节点 节点那边的 DNS

    客户端把整个请求连同域名交给代理节点,由节点那边去解析。我们看到的 DNS 服务器在境外,通常和代理出口在同一个地区。

  • 泄露域名先交给了国内 DNS
    你的设备 绕过代理 国内运营商 DNS

    网页内容虽然走了代理,但域名先被交给了国内的 DNS 服务器解析。对方记下了你要访问的网站,网页本身照样能打开,所以平时察觉不到。

每次检测都会生成一个新的随机域名,结果只对应这一次、这个浏览器。服务器上的记录 10 分钟后自动删除。

常见问题

开着代理,为什么还会出现国内 DNS 服务器?

最常见的原因是规则里有 GEOIP、IP-CIDR 这类按 IP 判断的规则。客户端要先知道目标 IP 才能匹配它们,于是用配置里 dns 一节的 nameserver 先解析一次域名,如果那里填的是国内 DNS,域名就交给了国内。以 Mihomo 为例,可以在这些规则末尾加上 no-resolve,或者开启 fake-ip 模式,并用 nameserver-policy 只让国内域名走国内 DNS。

只开了系统代理,没有开 TUN 模式,会泄露吗?

浏览器走系统代理时,通常把域名原样交给代理客户端,不自己解析,这时是否泄露取决于客户端的 DNS 设置。但不走系统代理的程序会直接用系统的 DNS,也就是运营商的 DNS。想让所有程序都不泄露,需要开启 TUN 模式。

列表里出现了 Google、Cloudflare 这类公共 DNS,正常吗?

正常。代理节点所在的机房常用公共 DNS 做上游,浏览器开了“安全 DNS”(DNS over HTTPS)时,也会直接交给你选的那家。只要它们不在大陆,就不算泄露。

一台 DNS 服务器都没有检测到,是怎么回事?

说明测试域名的查询没有到达我们的服务器。常见原因是广告拦截扩展或安全软件拦下了这些随机域名,或者当前网络屏蔽了它们。换一个浏览器或暂时关掉扩展再试一次。

检测会记录我的信息吗?

我们的域名服务器只记下来问的 DNS 服务器 IP,存在内存里,10 分钟后删除,不写日志。本站接口会把这些 DNS 服务器的 IP 交给 ipapi.is 查询所在地区和运营商,不会发送你自己的 IP。

延伸阅读