适合已经能连接节点、但检测页面仍显示本地运营商 DNS 的用户。操作顺序是先建立直连基线,再识别浏览器安全 DNS、系统缓存和客户端分流造成的干扰,随后调整 v2rayN、v2rayNG 或 v2flyNG 的 DNS 与流量接管设置,最后通过三轮复测确认查询路径是否符合预期。
DNS 泄漏的判断标准
DNS 负责把域名转换为可连接的 IP 地址。浏览器打开一个网站时,通常先发起域名查询,再连接查询结果对应的地址。代理节点能够转发网页流量,不代表系统中的 DNS 查询必然经过同一条路径;两者由不同组件处理,也可能分别走直连和代理。
所谓 DNS 泄漏,不是检测页出现多个解析器就一定有问题,而是本应交给指定解析器或代理路径处理的查询,绕过了预期通道。常见表现是网页出口地址已经变化,DNS 检测结果却持续出现当前网络运营商、路由器下发的解析器,或者测试域名直接由本地网络的 53 端口完成解析。
| 检测现象 | 可能原因 | 处理重点 |
|---|---|---|
| 出口地址已变化,解析器仍属于本地运营商 | 系统 DNS 或 UDP 53 未被客户端接管 | 检查 TUN、VPN 服务与本地 DNS 开关 |
| 不同浏览器显示不同解析器 | 其中一个浏览器启用了独立的安全 DNS | 统一浏览器设置后重新建立基线 |
| 检测结果偶尔出现路由器地址 | 系统回退、缓存或网络切换触发了备用解析 | 清缓存并连续测试三轮 |
| 只显示代理服务侧解析器 | 域名查询由远端或指定解析器完成 | 继续核对分流是否符合规则 |
结论:先确认预期,再判断泄漏
检测结果的关键不是解析器数量,而是解析器归属和查询路径。公司网络、家庭路由器与浏览器安全 DNS可能产生不同结果,只有先写清楚预期使用哪一组解析器,复测才有判断依据。
在线检测与本地基线怎么做
正式修改配置前,先在客户端完全断开时测一次,再连接节点测一次。每轮使用同一个浏览器、同一个网络和同一个检测模式,避免把浏览器差异误判为客户端故障。建议选择支持标准检测与扩展检测的 DNS 测试页面,扩展检测通常会发起更多随机子域名查询,更容易发现备用解析器。
记录直连结果
退出 v2rayN 或停止安卓端 VPN 服务,关闭浏览器安全 DNS,打开检测页面执行一次扩展检测。记录出口网络归属、解析器数量与解析器所属网络,不必记录临时测试域名。
连接目标节点
在客户端选中一个可用配置。v2rayN 开启系统代理或 TUN 模式;v2rayNG、v2flyNG 点击连接并确认系统状态栏显示 VPN 服务正在运行。
清理旧缓存
桌面端执行 DNS 缓存刷新,随后彻底关闭并重新打开浏览器。安卓端可先断开再重连客户端,浏览器仍复用旧结果时再结束浏览器进程。
连续检测三轮
每轮间隔至少 30 秒,并重新加载检测页面。三轮都只出现预期解析器,比单次结果更能排除缓存、备用 DNS 与短时网络切换。
对照出口变化
如果网页出口地址没有变化,先处理代理接管问题;如果出口已变化但解析器保持直连基线,再进入客户端 DNS 设置排查。
Windows 本地检查命令
以下命令用于查看系统当前 DNS、清除缓存并检查本机是否有程序监听 53 端口。它们不能单独证明查询经过哪条出站,但可以定位错误的网卡配置和端口冲突。
ipconfig /all
ipconfig /flushdns
nslookup example.com
powershell -NoProfile -Command "Get-NetUDPEndpoint -LocalPort 53 -ErrorAction SilentlyContinue"
v2rayN 桌面端防泄漏配置
以下操作以 v2rayN 7.x 配合 Xray Core 为基准。小版本升级可能调整标签位置,但排查逻辑不变:先确认 Core 类型,再设置 DNS,最后决定使用系统代理还是 TUN。系统代理主要接管支持 HTTP 或 SOCKS 代理的应用,通常不会自动接管所有程序发出的 UDP 53 查询;需要覆盖更多系统流量时,应优先检查 TUN 模式。
确认内核
打开「设置」→「参数设置」→「Core 类型」,确认当前配置使用 Xray。保存后重启内核,避免旧进程继续持有先前生成的配置。
设置 DNS
进入「设置」→「DNS 设置」→「Xray DNS」,先选择随版本提供的基础模板,再按分流需求配置直连 DNS 与代理 DNS。直连域名应使用本地网络可达的解析器,代理域名则交给经过代理可访问的解析器。
核对分流
在「设置」→「路由设置」中检查当前规则。域名若先被解析成 IP,后续可能只命中 IP 规则;需要按域名分流时,应确保查询策略与路由规则配套,不要只修改 DNS 地址。
启用 TUN
需要接管不遵循系统代理的程序时,进入「设置」→「参数设置」→「Tun 模式设置」,核对 DNS 劫持与自动路由选项,再从主界面开启 TUN。首次启用后按系统提示完成必要权限操作。
重启并复测
关闭旧内核,执行
ipconfig /flushdns,重新启动 v2rayN。先打开普通网页确认连接,再执行三轮 DNS 扩展检测。
系统代理与 TUN 的差别
- 系统代理:适合浏览器和主动读取系统代理的桌面程序。应用如果直接发送 DNS 数据包,查询可能继续走物理网卡。
- TUN 模式:通过虚拟网卡接管更广范围的 IP 流量,适合需要统一处理 UDP、独立更新器和不读取系统代理的程序。
- 混合使用:切换模式后要检查旧的手动代理是否仍指向本地端口。v2rayN 常见 HTTP 端口为 10809,SOCKS 端口为 10808,实际值以「设置」→「参数设置」中的本地监听配置为准。
- 路由优先:DNS 服务器本身也会命中路由规则。如果它被错误分到阻断出站,表现通常是网页全部无法解析,而不只是检测结果异常。
报错:failed to find an available destination
原因与解法:出站服务器域名无法解析,或可用地址被路由规则全部排除。先检查节点地址拼写与系统时间,再换回基础 DNS 模板并重启内核。
报错:lookup server.example: no such host
原因与解法:当前解析器没有返回节点域名结果,或者查询被错误送入不可用出站。暂时让节点服务器域名使用直连 DNS,确认节点连通后再恢复分流。
报错:bind: Only one usage of each socket address is normally permitted
原因与解法:本地 DNS 或代理端口已被其他进程监听。使用端口检查命令定位进程,关闭冲突服务,或在「设置」→「参数设置」中调整监听端口并同步修改依赖该端口的设置。
v2rayNG 与 v2flyNG 安卓端设置
安卓端通常通过系统 VPN 服务接管流量,DNS 是否经过客户端取决于本地 DNS、虚拟 DNS 与路由配置。v2rayNG 使用 Xray 内核,v2flyNG 使用 v2fly 内核,两个客户端的设置名称和可用选项可能随内核能力不同。操作时不要直接照搬另一款客户端的高级 JSON,先使用当前版本内置的 DNS 选项建立可工作的基线。
更新客户端
先确认使用当前下载页提供的稳定版本。升级后重新打开应用,让客户端完成配置迁移,再选择一个已验证可连接的节点。
开启本地 DNS
在 v2rayNG 进入「设置」→「本地 DNS」,启用由客户端处理 DNS 的选项,并检查监听端口没有与其他本地服务冲突。常见 DNS 监听端口是 53 或客户端分配的高位端口,以界面显示为准。
检查虚拟 DNS
进入「设置」→「VPN 设置」查看 FakeDNS 或对应的虚拟 DNS 选项。需要按域名路由、且普通解析会过早暴露目标域名时可以启用;若局域网设备或个别应用连接异常,先关闭该选项对照测试。
确认分应用规则
如果启用了分应用代理,确认执行检测的浏览器已包含在代理范围内。浏览器被排除时,它的网页请求与 DNS 查询都会按直连路径处理。
断开后重连
保存设置后不要只返回首页,应先停止当前连接,等待 5 秒再重新连接。随后结束浏览器进程,重新打开检测页面执行三轮测试。
| 配置项 | v2rayNG | v2flyNG |
|---|---|---|
| 主要内核 | Xray | v2fly |
| 流量接管 | 系统 VPN 服务 | 系统 VPN 服务 |
| 优先检查 | 本地 DNS、FakeDNS、分应用代理 | 本地 DNS、路由规则、分应用代理 |
| 修改后动作 | 停止连接并重新启动服务 | 停止连接并重新启动服务 |
结论:先接管查询,再谈解析器选择
只把 DNS 地址从一个公共解析器换成另一个,无法修复绕过客户端的查询。安卓端应先确认检测浏览器位于 VPN 与分应用代理范围内,再调整本地 DNS、FakeDNS 和路由规则。
复测失败时按结果定位
配置完成后仍看到本地解析器,不要连续更换节点和 DNS 地址。一次只改变一个变量:先固定节点与浏览器,再分别检查浏览器安全 DNS、客户端接管模式、系统缓存和路由规则。变量同时变化时,即使结果暂时正常,也无法确认是哪一项生效。
现象:出口已变化,但三轮都出现本地运营商 DNS
原因与解法:网页流量走了代理,DNS 仍由系统网卡发送。桌面端改用并检查 TUN,安卓端检查本地 DNS、VPN 服务和分应用代理范围。
现象:第一轮正常,第二轮出现额外解析器
原因与解法:可能存在备用 DNS、浏览器安全 DNS 或网络切换。固定网络,关闭浏览器独立解析功能,清缓存后每隔 30 秒连续测三次。
现象:开启 FakeDNS 后局域网域名无法访问
原因与解法:局域网域名被虚拟解析,未交给本地 DNS。为局域网域名和私有地址补充直连规则,或暂时关闭 FakeDNS 验证差异。
现象:修改 DNS 后所有网站都提示无法解析
原因与解法:解析器地址不可达、DNS 出站被阻断,或配置格式不受当前内核支持。恢复客户端内置模板,确认基础连接后再逐项加入自定义规则。
合格复测记录应包含什么
- 客户端名称、版本系列与内核类型,例如 v2rayN 7.x 配合 Xray,而不是只写“V2Ray 已连接”。
- 使用系统代理、TUN 或安卓 VPN 服务中的哪一种接管方式。
- 检测浏览器是否启用独立安全 DNS,是否位于分应用代理范围内。
- 直连基线与连接后结果的解析器归属变化,以及三轮测试是否一致。
- 复测时间、当前网络类型和是否发生过 Wi-Fi 切换,方便排除网络环境变化。
检测到两个解析器就是泄漏吗?
不一定。同一 DNS 服务可能使用多个出口地址,负载均衡也会返回不同地区的解析器。先核对归属是否符合预期,再看是否混入直连基线中的运营商解析器。
为什么换了节点,DNS 结果没有变化?
DNS 可能由客户端指定的固定解析器处理,并不随节点切换。只要查询没有绕过预期路径,解析器保持不变属于正常现象。
系统代理开启后还需要 TUN 吗?
只使用浏览器等遵循系统代理的程序时可以先用系统代理。需要覆盖游戏、独立更新器或直接发送 UDP 查询的程序时,再启用 TUN 并检查 DNS 劫持设置。
浏览器安全 DNS 要一直关闭吗?
排查阶段建议关闭,以便确认客户端处理路径。问题解决后可以重新启用,但应再测三轮,确认浏览器选择的解析器和代理策略符合预期。
订阅更新失败也可能与 DNS 有关吗?
可能。订阅服务器域名若无法解析,更新会直接超时。先让订阅更新使用可用代理,或让该域名通过直连 DNS 完成解析,再检查核心日志中的 lookup 与 timeout 信息。