开了机场还会 DNS 泄漏吗?2026 年自查与修复教程

开了机场还会 DNS 泄漏吗?用大白话讲清 DNS 泄漏的成因、fake-ip 原理,附 5 分钟自查步骤与 TUN、Windows、浏览器的修复清单,不推荐任何服务商。

节点显示已连接,网页也能打开,你可能觉得一切正常。但还有一件事不少人没留意:你访问的网站名字,有可能还是被你本地的网络运营商看得清清楚楚。这就是常说的 DNS 泄漏。

先说结论:开了机场订阅,不代表 DNS 一定安全。有没有泄漏,取决于你的客户端 DNS 设置、是否开了 TUN、系统和浏览器有没有“绕路”。好消息是,自查只要 5 分钟,修复也基本是改几个开关。这篇文章带你搞清楚 DNS 泄漏是什么、怎么测、怎么修,顺便把原理用大白话讲一遍。

说明一下:我们查阅了 Clash 内核 Mihomo 的官方 Wiki、TechRadar 等公开资料来写这篇,文中没有任何实测测速数据,也不推荐任何机场或 VPN 服务商。

一、DNS 泄漏到底是什么?说白了就是“问路”问错了人

你在浏览器里输入一个网址,电脑并不认识网址,得先去问一个“DNS 服务器”:这个域名对应哪个 IP?Cloudflare 的科普文档把 DNS 比作“互联网的电话簿”,作用就是把人能读懂的域名翻译成机器用的 IP 地址(Cloudflare:What is DNS)。

问题出在“问路”这一步。正常情况下,你连上代理后,这个问路的请求也应该跟着走代理。如果它没走,而是直接发给了你本地宽带运营商的 DNS,那就叫 DNS 泄漏:流量内容虽然加密了,但“你查了哪些域名”被暴露了。TechRadar 的解释也是类似的:DNS 泄漏指 VPN 没有把 DNS 请求完整保护起来,导致查询记录甚至设备 IP 可能暴露(TechRadar:What is a DNS leak,2023 年更新,该文为 ExpressVPN 合作内容,参考时请留意立场)。

顺带一提,机场和 VPN 的概念区别如果你还不太清楚,可以先看 机场和 VPN 有什么区别,再回来看这篇会更好懂。

二、哪些情况容易泄漏?常见的 6 个“绕路口”

综合 TechRadar 和 Mihomo 官方文档,容易出现泄漏的场景主要有这几类:

情况说白了是怎么回事你该怎么办
客户端没开 DNS 模块或只代理了浏览器只有部分程序走代理,其他程序仍用系统 DNS改用 TUN 模式,或检查系统代理是否生效
TUN 开了但没接管 DNS流量进了虚拟网卡,DNS 请求却没被“劫持”到客户端内部配置 dns-hijack
Windows 多网卡并行解析系统同时向多张网卡发 DNS 请求,取最快的开启 strict-route,或关闭智能多宿主名称解析
浏览器自带安全 DNS浏览器可能自己走一条加密 DNS,不一定经过你的代理设置检查浏览器“使用安全 DNS”设置
IPv6 没处理IPv4 走了代理,IPv6 请求却走了本地关闭 IPv6 解析或确保 IPv6 同样被代理
Android 开了“私人 DNS”系统直接用加密 DNS,客户端接管不到代理期间关掉私人 DNS

三、5 分钟自查:怎么知道自己有没有 DNS 泄漏

思路很简单:先看“没开代理时”你的 DNS 是谁,再看“开了代理后”有没有还是它。TechRadar 给的步骤是这样的:

  1. 断开代理,打开 dnsleaktest.com,跑一次“Extended test(扩展测试)”,记下显示的 DNS 服务器 IP 和运营商名称。
  2. 连上节点,再跑一次同样的测试。
  3. 如果第二次出现的 DNS 服务器和第一次一样,或者明确属于你本地宽带运营商,大概率就是泄漏了。
  4. 再用 BrowserLeaks 之类的第二个工具复核一遍,同时看看 WebRTC 项有没有暴露你的真实 IP。
  5. 每台设备都要测,手机和电脑的设置是分开的。

有两点提醒你:

  • 别只测一次就下结论。测试网站的结果可能受缓存影响,改完设置后记得清缓存再测(命令见后文)。
  • 国内网站走本地 DNS 是正常的分流行为。很多配置会让国内域名直连、用国内 DNS 解析,这是设计如此,不等于“泄漏”。你真正要关心的,是需要走代理的那部分域名有没有被本地 DNS 查到。

测试工具本身是第三方网站,你访问它们也会产生记录,用完即可,不要在这些页面输入任何账号信息。

四、原理:为什么 fake-ip 能少泄漏?

这一节稍微有点技术,但看懂了你就明白那些开关为什么这么设。

普通模式(redir-host):先在本地查,再决定走不走代理

Mihomo 的 DNS 增强模式有两种:fake-ip 和 redir-host,官方文档注明默认是 redir-host(Mihomo Wiki:DNS,页面更新于 2026 年 7 月)。在这种模式下,客户端会真的去解析出一个 IP,再根据这个 IP 和规则决定走代理还是直连。也就是说,解析这一步发生在本地侧,DNS 服务器选得不对,就可能暴露记录。

fake-ip:先给你一个“假地址”,真正的解析交给远端

fake-ip 的做法是:应用来问“这个域名是什么 IP”,客户端立刻回一个假的地址(来自 fake-ip-range,官方示例是 198.18.0.1/16 这个段)。应用拿着假地址发起连接,客户端再根据域名去走对应的出口。按这类代理的常规做法,需要走代理的域名,真实解析由节点那一侧完成,本地就不必再查一遍。这样一来,本地 DNS 查询的机会大幅减少,响应也更快。

但 fake-ip 不是万能的。有些程序(比如局域网设备发现、部分游戏联机、校时服务)需要拿到真实 IP,这时就要用 fake-ip-filter 把这些域名排除掉,让它们拿到真实地址。官方文档里还提供了 blacklist、whitelist、rule 三种过滤模式,默认是 blacklist,只有命中过滤列表的域名才不给假地址。

顺带记住两个字段:nameserver 决定默认用哪些 DNS 去查;proxy-server-nameserver 只负责解析节点自己的域名。DNS 地址可以写成 DoH(官方示例 https://dns.alidns.com/dns-query)、DoT(如 tls://1.1.1.1)或普通 IP。很多机场订阅导入时会覆盖本地 DNS 设置,建议在客户端用“覆写”功能保存你自己的 DNS 片段。

五、修复:按这个顺序一步步改

下面按“影响大小”排序。每改一步,就按第三节重新测一次,这样你知道是哪一步起了作用。不同客户端界面不一样(选客户端可以看 Clash 还能用吗?客户端怎么选),但底层字段基本对应。

第 1 步:确认客户端 DNS 模块已启用

官方说明:enable 关闭时,会使用系统 DNS 解析。所以如果你的配置里 DNS 没开,所有查询都会走系统 DNS,也就是你本地运营商那一套。先把它打开,并按需选择 fake-ip 模式。

第 2 步:用 TUN 模式,并配置 dns-hijack

只开系统代理时,不走系统代理设置的程序可能直接用系统 DNS。TUN 会创建虚拟网卡接管全局流量,auto-route 负责自动设置路由,dns-hijack 则把匹配的 DNS 连接重定向进客户端内部的 DNS 模块。官方文档还提醒了两点:

  • 在 macOS 和 Windows 上,发往局域网的 DNS 请求无法被自动劫持;
  • 在 Android 上,开启“私人 DNS”时劫持不会生效,所以代理期间要把私人 DNS 关掉。

资料来源:Mihomo Wiki:TUN。

第 3 步:Windows 用户开启 strict-route

官方文档写明:开启 auto-route 后启用 strict-route,在 Windows 上会添加防火墙规则,阻止多网卡解析带来的 DNS 泄漏。代价是它可能让个别软件(官方举例 VirtualBox)在某些场景下出问题,所以改完要留意其他软件是否正常。

另一个办法是关闭 Windows 的“智能多宿主名称解析”。Neowin 的指南介绍,这个功能是 Windows 8 及以后版本里的,会同时向多个网络适配器发 DNS 查询并采用最先返回的结果,所以在有线加无线同时联网时,请求可能从 VPN 之外的网卡出去。关闭方法是在组策略编辑器(gpedit.msc)里依次进入“计算机配置 > 管理模板 > 网络 > DNS 客户端”,把“关闭智能多宿主名称解析”设为已启用,然后重启。家庭版没有组策略编辑器,可以用 Policy Plus 之类的工具。该指南成文较早(针对 Windows 10 和 8),操作前请确认你的系统版本,改系统策略前也建议先备份(Neowin 指南)。

第 4 步:检查浏览器的“安全 DNS”

Chrome 的“使用安全 DNS”默认处于自动模式:解析遇到困难时会退回到不加密的查询;如果你手动选了自定义服务商,则不会回退。如果测试发现浏览器的 DNS 表现和系统不一致,可以在“设置 > 隐私和安全 > 安全”里查看这一项(Chrome 帮助:安全 DNS)。是关掉还是手动指定,取决于你的整体 DNS 方案,关键是别让它和客户端各走各的。

第 5 步:处理 IPv6 与 WebRTC

Mihomo 的 ipv6 选项为 false 时,AAAA 查询会得到空解析,也就是不返回 IPv6 地址。TechRadar 还提到,IPv6 和 WebRTC 也是常见的泄漏路径,并建议顺手检查 WebRTC 结果。如果你的节点和网络本身支持 IPv6,就不要简单粗暴关掉,而是确保它也被代理接管。

第 6 步:清缓存再测

改完设置后,旧缓存可能让你误以为没生效。常用命令如下(来自 TechRadar):

  • Windows:ipconfig /flushdns
  • macOS:sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
  • Chrome:地址栏输入 chrome://net-internals/#dns,点击“Clear host cache”
  • Firefox:地址栏输入 about:networking#dns,清除 DNS 缓存

六、自查清单

  • 断开和连接代理时,分别做过 DNS 泄漏测试,并记录了结果
  • 客户端 DNS 模块已启用,增强模式已选定
  • TUN 已开启,dns-hijack 已配置
  • Windows 已开启 strict-route,或已关闭智能多宿主名称解析
  • Android 已关闭私人 DNS
  • 浏览器的安全 DNS 设置已确认,没有和客户端冲突
  • IPv6 和 WebRTC 已检查
  • 改动后清过 DNS 缓存再复测
  • 订阅链接没有发给别人,也没有贴在公开的地方

另外,如果你的问题其实是“节点能连但特别慢”,那多半不是 DNS 的事,可以看看 节点延迟高怎么办;如果你在纠结免费订阅的隐私风险,推荐读 免费 VPN 安全吗。

常见问题(FAQ)

开了机场,运营商还能看到我访问什么吗?

内容一般被加密了,但如果 DNS 请求没走代理,你查询过的域名就可能被本地 DNS 记录。这正是上面要排查的点。

测试显示的是国内 DNS,一定是泄漏吗?

不一定。分流配置下,国内域名用国内 DNS 是正常的。要看的是“需要走代理的域名”有没有被本地 DNS 解析。拿不准时,换一个只能走代理的网站做测试,并对比断开代理前后的结果。

fake-ip 和 redir-host 选哪个?

官方默认是 redir-host。fake-ip 能减少本地解析,但个别程序需要真实 IP,要配合 fake-ip-filter 排除。先用 fake-ip,遇到程序异常再把对应域名加进过滤列表,是比较常见的思路。

手机上怎么查 DNS 泄漏?

做法和电脑一样:断开、连上各测一次。安卓要先关掉“私人 DNS”,否则 TUN 的 DNS 劫持不会生效。

机场能看到我的 DNS 记录吗?

走代理的流量都要经过节点,服务商从技术上有条件看到你的访问目标。所以要选有清晰隐私说明的服务,别用来处理敏感账号,也要防范跑路和订阅泄露的风险。

总结

DNS 泄漏说白了就是“问路”没走代理。排查三步走:断开连接各测一次、对比结果、按顺序修(DNS 模块、TUN 与 dns-hijack、Windows 多网卡、浏览器安全 DNS、IPv6)。每改一步清缓存复测,就能知道哪一步真正有效。最后提醒你:请遵守所在地的法律法规,并注意隐私与账号安全,不要把订阅链接随意发给别人。本文资料截至 2026 年 10 月,客户端和内核更新较快,请以官方文档为准。

参考来源:Mihomo Wiki – DNS、Mihomo Wiki – TUN、TechRadar、Cloudflare、Chrome 帮助、Neowin。