V2Ray DNS 泄漏检测与防泄漏设置:v2rayN 远程 DNS 与 FakeDNS 实操

先用检测页确认 DNS 请求的去向,再在 v2rayN 中调整远程 DNS、直连 DNS 与 FakeDNS,配合路由规则堵住解析外泄。

本文速览

适合“网页已经走代理,DNS 检测却出现本地运营商”的排查场景。先区分浏览器、系统和内核的解析路径,再按普通代理、远程 DNS、TUN 与 FakeDNS 的顺序调整。每次只改一个变量,最后用检测页、命令行和日志交叉验证,避免把正常的直连解析误判为泄漏。

DNS 泄漏是什么:网页出口与解析出口分开看

DNS 负责把域名转换成 IP 地址。网页连接走了代理,不代表查询域名的请求也走了代理。如果原本希望交给代理处理的域名,被应用提前提交给本地网络的解析器,本地网络仍可能获知这些查询。这才是需要修复的路径偏差。

v2rayN 是桌面客户端,具体解析行为取决于当前内核、入站方式与生成的配置。VMess、VLESS 等协议名称不能直接说明 DNS 是否泄漏;仅更换协议,通常不会修正浏览器自行解析或路由顺序错误。

应用提交域名 入站接收请求 规则选择路径 解析域名 连接目标地址

这条流程是排查模型,并非所有请求都严格按同一顺序执行。应用可能先在本机解析;内核也可能为了匹配 IP 规则而先解析。排查时要问两个问题:谁发起查询,以及查询通过哪个出站发送。

DNS 泄漏检测:先记录基线,再比较代理结果

打开 DNSLeakTest 一类检测页面,运行标准检测或扩展检测,记录解析器的地址、运营网络与地区。检测页通常看到的是最终递归解析器的出口,不一定是电脑直接连接的 DNS 地址;地区数据库也可能有偏差,因此不能只凭“国家不同”下结论。

  1. 准备基线:关闭代理和 TUN,重启浏览器,访问一个不涉及敏感信息的 DNS 检测页面。记录此时的公网出口和解析器运营网络。
  2. 启用普通代理:启动已确认可用的节点,在 v2rayN 托盘菜单选择「系统代理」→「自动配置系统代理」。不同版本措辞可能略有差异,以实际界面为准。
  3. 重复同一测试:先确认网页公网出口已改变,再运行 DNS 检测。尽量保持浏览器、节点、测试页面不变。
  4. 隔离浏览器设置:记录当前“安全 DNS”设置,临时关闭后再测一次。不要同时改节点和路由,否则无法确认是哪项操作产生效果。
  5. 补测其他应用:浏览器测试通过后,再检查目标应用。系统代理不是全系统流量接管,某个浏览器通过测试不能代表所有程序。

端口与命令验证:区分本机解析和代理解析

先在「设置」→「参数设置」中查看当前本地监听端口与入站类型。下面使用 10808 演示 SOCKS 入站;这不是对所有版本默认值的断言。只有确认该端口支持 SOCKS 后,才使用对应命令。

53
传统 DNS 常用 UDP/TCP 端口
443
DNS over HTTPS 常用端口
10808
本文 SOCKS 监听端口示例

Windows 可在 PowerShell 中运行以下命令。第一条只验证本地端口是否能建立 TCP 连接;后两条才用于比较域名在哪里解析。使用 curl.exe 可避免部分环境把 curl 当作其他命令的别名。

Test-NetConnection 127.0.0.1 -Port 10808

curl.exe --socks5 127.0.0.1:10808 --connect-timeout 10 -I https://example.com

curl.exe --socks5-hostname 127.0.0.1:10808 --connect-timeout 10 -I https://example.com

结论:先证明请求进入代理,再调整 DNS

如果本地端口不通,或应用仍直接发起连接,修改远程 DNS 不会接管这些请求。先修正入站与应用代理设置,再比较解析路径,能减少无效改动。

v2rayN 远程 DNS 与直连 DNS:地址和出站一起设置

修改前先备份客户端配置,记录当前节点、路由模式和 DNS 设置。进入「设置」→「DNS设置」查看当前内核对应的选项;若版本将 DNS 放在参数设置页,按实际页面中的 DNS 分组操作。不同内核的配置结构不通用,不要把一段 JSON 同时粘贴到所有内核中。

用途具体示例需要确认的路径
代理域名解析https://1.1.1.1/dns-query在支持此格式的远程 DNS 字段填写,并确认请求由代理出站发送。
允许直连的域名223.5.5.5只用于明确规划为直连的查询;传统 DNS 查询通常未加密。
代理节点域名订阅中服务器地址对应的域名准备可在代理建立前工作的解析路径,避免循环依赖。

表中地址用于说明配置关系,不是必须采用的服务列表。远程 DNS 选择 DoH 时,HTTPS 加密只能保护传输内容;如果 DoH 请求直连,本地网络仍能看到你连接了解析服务。若目标是让解析流量也离开本地出口,就要同时核对路由。

  1. 先确定范围:排查期间可临时使用客户端提供的全局代理路由模式,减少分流变量。测试完成后恢复日常路由,不要把临时模式误当成最终配置。
  2. 设置远程解析:填写当前内核支持的 DNS 地址格式。普通 DoH 与某些内核的本地直连解析模式不是一回事,不能只看到 HTTPS 就认定它经代理。
  3. 检查规则顺序:如果存在“境外 IP 直连”或覆盖解析器地址的直连规则,先确认它是否抢先命中。通常规则自上而下匹配,后面的代理规则无法覆盖已经命中的直连规则。
  4. 处理节点引导解析:节点使用域名时,为它保留独立、可达的解析方式。不要让节点域名只能通过该节点才能解析。
  5. 保存并重启内核:确认日志没有配置错误,再重新做同一组测试。若路由恢复分流后问题重新出现,重点检查域名规则和解析器出站规则。

FakeDNS 与 TUN:解决 IP 入站后的域名识别

FakeDNS 不会为域名直接返回真实服务器地址,而是分配一个合成 IP,并保存域名与合成地址的映射。后续连接到这个地址时,内核才能还原域名并继续处理。它解决的是域名信息传递问题,不是一个独立的加密 DNS 服务,也不能替代代理出站规则。

Xray 常见 FakeDNS IPv4 地址池为 198.18.0.0/15,但应以当前生成配置为准。这个范围用于基准测试,不是真实网站的公网地址。只有请求与后续连接都被同一套支持 FakeDNS 的链路接住,映射才有意义。

  1. 先验证基础代理:在未启用 FakeDNS 的情况下完成前面的远程 DNS 测试。不要在节点仍无法连接时同时开启多项高级设置。
  2. 确认实现支持:检查当前 TUN 实现及内核是否支持对应的 FakeDNS 或 fake-ip 模式。名称相近不代表配置通用,普通 SOCKS 场景也不必为了检测而强行开启。
  3. 启用 DNS 接管:按当前客户端提供的 TUN 与 DNS 接管选项操作。仅启用虚拟网卡,不代表所有 DNS 查询都已交给内核。
  4. 核对域名恢复:检查生成配置是否具备 FakeDNS 映射识别能力,必要时核对 FakeDNS 嗅探相关设置。不要把只在普通嗅探中打开 HTTP、TLS 识别当成完整配置。
  5. 清缓存后复测:重启受测应用,并按需执行下面的系统缓存清理命令。浏览器可能另有缓存,需要一并重启。
ipconfig /flushdns

浏览器自带 DoH、应用内置 DNS 和 IPv6 是常见遗漏点。只接管 UDP 53 不能自动处理所有 HTTPS 解析请求;如果 IPv6 路由没有纳入接管,应用也可能通过另一条网络路径访问。应按实际支持情况配置 IPv6,或在隔离测试中临时关闭对应网卡的 IPv6 后比较结果,不能把临时关闭当成通用修复。

DNS 设置后打不开网页:按日志定位失败层级

先看日志中的目标地址、使用的出站与失败时间,再看错误关键字。以下是常见错误片段,不代表每次都会出现完整相同的句子。临时提高日志详细程度可以帮助定位,但分享日志前应遮去订阅地址、节点凭据和个人访问域名。

报错:i/o timeout

原因:请求等待超时,可能是 DNS 服务不可达,也可能是代理到解析服务的连接失败。

解法:核对该行目标是否为 DNS 地址;恢复上一组可用设置,确认节点正常,再逐项检查解析器地址与出站规则。

报错:no such host

原因:域名查询未得到可用结果,可能涉及域名拼写、解析器返回结果或节点域名的引导解析。

解法:先区分失败的是节点域名还是网站域名;前者检查代理建立前的 DNS,后者比较其他域名与其他解析器的结果。

报错:context deadline exceeded

原因:操作超过限定时间;若出现在 DoH 请求附近,需继续确认连接、TLS 握手和代理路径。

解法:检查系统时间和日志上下文,确认解析服务可达。不要通过关闭证书验证来掩盖证书或时间问题。

修改后只有部分网站失败,优先排查分流规则和 IPv6;所有网站立即失败,优先检查 DNS 地址格式、节点引导解析以及 TUN 路由。若连客户端都无法正常加载配置,应先回退本次修改,而不是继续叠加规则。

常见问题:检测结果与防泄漏设置怎么判断

公网 IP 变了,DNS 还是本地运营商,怎么查?

先记录浏览器安全 DNS 状态,再临时关闭它重测。随后使用 SOCKS 域名转交命令比较,确认请求是否进入代理;若只有 TUN 模式异常,再检查 DNS 接管和 IPv6 路由。

检测到多个国家的 DNS,就一定泄漏了吗?

不一定。公共解析器可能使用分布式出口,地址归属也可能不准确。把运营网络与关闭代理时的基线比较,再检查日志,不能用地址数量直接判断。

远程 DNS 填了 DoH,为什么还会直连?

DoH 指定传输方式,不自动决定出站。检查解析服务地址是否命中直连规则,并确认当前内核是否采用绕过路由的本地解析模式;修正后重启内核再测。

开启 FakeDNS 后,局域网设备名称打不开怎么办?

为局域网名称与内部域名保留合适的本地解析和直连规则。先关闭 FakeDNS 验证问题是否随之消失,再调整例外规则;不要把内部域名统一交给公共 DNS。

安卓端也能照搬这份 v2rayN 配置吗?

排查思路可以复用,配置不能直接照搬。v2rayNG 使用 Xray 内核,v2flyNG 使用 v2fly 内核;应分别核对 DNS、VPN 接管范围和当前版本提供的设置项。

结论:用同一组测试完成验收

修复后恢复日常分流,重启浏览器和目标应用,再重复公网出口、DNS 检测与命令行验证。只有预期代理的查询不再落到本地解析路径,同时直连网站和局域网访问正常,才算完成这次调整。

客户端下载安装到这里