← 返回博客

DNS 泄露怎么检测?4 步排查代理 DNS 问题

核心结论:IP 检测通过,只说明访问出口换了,不说明 DNS 查询也走了同一条路。代理和 DNS 管两段不同的流程,代理决定连接从哪个网络出口发出,DNS 负责把域名解析成 IP。解析查询走了非预期的路径,就是 DNS 泄露。检测它只要四步,读懂结果比跑测试更重要。

配置好代理,打开 IP 检测网站,页面显示的是代理 IP,于是判定网络环境没问题。过了几天排查账号异常,才发现 DNS 查询一直走的是本地网络。

问题未必出在代理本身,DNS 查询可能从没走上代理这条路。

开了代理,为什么还要检查 DNS

代理和 DNS 是两段流程,代理开启不等于 DNS 也被接管。代理决定连接通过哪个网络出口发送,DNS 则负责解析域名。两者涉及不同的网络环节,代理正常工作,不代表 DNS 查询一定符合预期。

具体到网络请求:访问网站时,客户端要么先通过 DNS 查询拿到目标域名的 IP,要么把域名交由代理端处理,采用哪种方式取决于代理协议、客户端实现和浏览器的 DNS 设置。开启代理不自动意味着所有解析查询都沿预期路径发送,判断要靠实际检测,不能只凭代理显示已连接就放心。

还要分清一件事的边界:DNS 泄露不等于真实公网 IP 暴露。泄露的是域名查询的路径,可能让解析服务商或本地网络看到你查过哪些域名。真实 IP 是否暴露,要靠独立的 IP 检测判断。新加坡网络安全局在 VPN 安全建议里,把 DNS 泄露测试和 IP 地址泄露测试列为两项独立检查,理由正是它们验证的不是同一个问题(见 CSA 的 VPN 安全指引)。

DNS 泄露通常是怎么发生的

三种来源最常见,都和配置有关,和代理坏没坏无关。逐个看。

代理只处理部分流量

有些代理配置只接管浏览器的网页请求,解析仍由本地系统完成,是否如此取决于代理协议和客户端的处理方式。网页请求走了代理、解析查询走了本地,检测结果里就会出现本地网络的解析器。

浏览器启用了独立的安全 DNS

Chrome 和 Firefox 都支持 DNS over HTTPS(DoH),启用后解析查询通过加密的 HTTPS 连接发给指定解析服务,可以减少本地网络直接观察查询的机会。但加密不代表查询一定经过代理,也不代表所选解析服务符合当前环境的预期。Firefox 的这项功能可以单独开关,见 Mozilla 官方文档。

系统、浏览器与代理客户端各用一套

最隐蔽的一种。系统用一个解析器,浏览器开了 DoH 又换一个,代理客户端再配一个,叠在一起解析路径就成了黑盒。只看代理软件显示「已连接」判断不了,要看实际运行中的浏览器走了哪条路。

解析路径落在本地 ISP 时,查询就经过 ISP 的解析服务,ISP 代理的原理与适用场景可以对照。

DNS 泄露怎么检测?四个步骤

检测本身不复杂,关键是测之前有预期、测之后有对照。四步做完,结论才站得住。

第 1 步:先记下预期结果。测之前写清楚三件事:当前代理的出口在哪个地区、域名解析应该由谁来接、浏览器有没有开 DoH。没有预期,看到结果也没法判断。

第 2 步:在代理开启状态下跑测试。用支持 DNS 泄露检测的网站,比如 dnsleaktest.com,点扩展测试(Extended test),让页面多显示几个解析器;也可以用 BrowserLeaks 的 DNS 检测页查看解析器归属的组织。记下解析器名称、所属组织和地区。

第 3 步:对照预期判断。检查结果里的解析器是否符合当前系统、浏览器和代理的配置。解析器属于预期使用的 DNS 服务,也没有非预期的本地解析路径,可以初步认为本次测试符合预期。出现本地 ISP 或陌生解析服务,先确认它是否真属于非预期配置,再逐项检查代理客户端的 DNS 处理、浏览器安全 DNS 和系统网络设置,不要立刻认定代理失效。单次检测只反映当前测试条件,不能保证所有请求都不存在问题。

第 4 步:改一项配置,重测一次。要调整就一次只动一处:代理客户端的 DNS 处理、浏览器 DoH 开关、系统网络设置,改完重测对比。一次改多项,结果分不清是谁起的作用。

检测结果怎么看

同一份结果,解读对了是线索,解读错了是误判。五种常见结果对应的处理:

检测结果怎么理解下一步
出现本地 ISP 的解析器可能与预期路径不一致,但不能仅凭 ISP 名称直接定性核对系统 DNS、代理设置及解析器归属
出现第三方公共解析服务可能是正常配置,也可能不是预期使用的服务检查浏览器安全 DNS 和系统解析设置
出现多个解析器可能涉及多个 DNS 服务、网络路径或检测机制逐个核对名称、组织及配置来源
开代理前后结果相同不能单凭结果相同就判定代理无效更换检测工具复核,并检查 DNS 配置
没有返回解析器可能是超时、查询受阻或工具本身无法完成检测确认网络可用后重测,必要时更换工具

还有一个坑:公共解析服务多用 Anycast 和分布式节点,检测页显示的解析器位置未必等于实际处理查询的服务器位置,更不等于泄露。判断的关键始终是查询有没有走非预期路径,看到陌生地区的解析器,先查配置再下结论。

五类 DNS 检测结果与对应处理动作示意图

DNS 泄露、WebRTC 泄露和浏览器指纹有什么区别

四项检查针对四种不同的信息,通过一项不代表其他项也通过。放在一起看边界最清楚:

检查项目检查什么和代理的关系
DNS 泄露域名查询实际经过哪些解析器代理不一定会接管全部解析查询
WebRTC 泄露浏览器的 WebRTC 功能可能暴露的本地或公网地址是否超出预期范围取决于浏览器行为和网络路由,要用专门页面测
浏览器指纹Canvas、字体、时区等浏览器特征换代理 IP 不会自动改变这些特征
公网 IP 检测网站看到的连接出口 IP只反映这一次请求的出口情况

DNS 和 WebRTC 是最容易混的两个,因为都带「泄露」两个字。它们的检测原理和处置方式完全不同,WebRTC 泄露的检测与设置方法单独讲过,这里不展开。另外,IPv6 泄露是同一家族里的另一项,查的是 IPv6 地址有没有绕过代理,方法见 IPv6 泄露检测的方法。

这四项分别反映不同的信息,不能互相替代。排查代理环境时,建议先确认公网 IP,再查 DNS 和 WebRTC,最后核对指纹和环境配置,具体项目按实际场景决定。

IP、DNS、WebRTC 与指纹四项检查各管一段示意图

用 MostMate 时,这几项检查怎么排进流程

检查顺序建议是:先出口,再解析,再 WebRTC,最后看环境配置。用 MostMate 管理多个浏览器环境时,可以把代理连通性检查和 DNS 泄露检测分开进行。

代理配置是第一项。给环境绑定代理后,用产品里的代理测试确认连接状态,协议类型(HTTP、HTTPS、SOCKS5、SSH)和认证信息一并核对。注意代理测试通过不能代替 DNS 泄露检测,DNS 查询的实际路径仍取决于代理客户端、浏览器和系统的配置。

MostMate 代理绑定与测试界面示意

之后在绑定该代理的环境里打开 DNS 检测页,方法同前面四步,看解析器归属是否符合预期。

第二项是环境本身的隔离。多账号场景下,每个环境的代理、Cookie 和指纹参数应各自独立,互不借用,隔离的具体范围见浏览器环境隔离的范围与配置。环境配错代理或共用配置,检测结果就没有对照意义。隔离有助于管理不同会话和配置,但不意味着 DNS 路径自动正确,也不能替代外部检测。

第三项记住边界:指纹浏览器负责把环境组织清楚,代理生效与否、DNS 走没走预期路径,仍要靠外部检测验证。检测通过也不代表一劳永逸,配置变更或系统更新后建议重测。

常见问题

开了代理,DNS 检测显示本地解析器,说明代理失效了吗?

不一定。代理可能只接管了网页请求,解析查询由系统或浏览器单独处理。逐项检查代理客户端的 DNS 处理和浏览器的 DoH 设置,改一项测一次。

DNS 泄露会暴露我的真实 IP 吗?

不能直接等同。DNS 泄露反映的是域名解析请求的路径,实际暴露哪些信息取决于网络配置和检测场景。真实公网 IP 是否隐藏,要用独立的 IP 检测确认,DNS 解析路径单独检查。

用了指纹浏览器还会发生 DNS 泄露吗?

可能会。指纹浏览器管理的是环境隔离和指纹参数,DNS 行为取决于代理协议和系统、浏览器配置,检测不能省。

DNS 检测通过之后,还需要检查什么?

还有 WebRTC 泄露和浏览器指纹两项,各自用对应工具验证。全部通过,这个环境的网络层检查才算完整。

结语

DNS 泄露检测的价值,不是得到一个「通过」或「失败」,而是确认当前环境的网络请求是否符合预期。公网 IP、DNS、WebRTC 和浏览器指纹各有对应的检查方法,不能用其中一项的结果代替其他项的验证。无论使用哪款指纹浏览器,都建议在代理或网络配置发生变化后重新检测。

如果你需要管理多个浏览器环境,可以先了解 MostMate 的环境配置和代理管理方式,再按本文步骤逐项验证;代理这一层想配得更稳,可以下载 MostMate,免费版有两个环境,先把第一个环境的检测流程走通。

MOSTMATE

让多账号安全管理更简单

从第一个账号开始,用 MostMate 建立更安全、更智能、更高效的多账号运营方式。

  • 环境彼此独立,身份逻辑一致。
  • AI 自动化 · 账号健康 · 团队运营
下载 MostMate