适合“网页能打开,但检测结果仍出现本地运营商 DNS”的桌面用户。先区分网页流量与域名解析的路径,再建立关闭代理时的基线,依次检查浏览器安全 DNS、v2rayN 的远程与直连解析、TUN 接管范围。最后用重复检测和日志确认结果,不把一个地区标签当成泄漏结论。
DNS 泄漏是什么:网页走代理,解析未必走代理
访问域名前,应用通常需要获取对应的 IP 地址。DNS 泄漏指的是:原本希望通过指定代理路径处理的域名查询,却交给了预期之外的解析器,例如本地网络运营商的 DNS。网页出口 IP 已经改变,并不能证明 DNS 查询也经过同一条路径。
v2rayN 是客户端管理界面,实际连接与解析行为还取决于所选内核、生成的配置和流量入口。设置系统代理,只会影响遵循系统代理设置的应用。某个程序自行发送 UDP DNS 请求,或者浏览器启用独立的安全 DNS,都可能形成另一条解析路径。
端口只能帮助辨认流量,不能单独证明安全性。DoH 是通过 HTTPS 传输 DNS 查询;若连接本身直连,解析服务仍可能在代理之外。反过来,传统 DNS 若在代理隧道内部传输,也不能只凭“53 端口”判定发生泄漏。
DNS 泄漏检测:先记基线,再对比代理结果
检测页面通常让浏览器请求一批随机子域名,再根据权威 DNS 侧收到的查询,展示递归解析器的出口。结果反映的是这次浏览器测试触发的解析链,不是电脑上所有应用的流量审计。可以在地址栏输入 dnsleaktest.com,使用标准测试与扩展测试进行对照。
-
记录基线
在允许直连测试的网络中,先关闭 v2rayN 的系统代理与 TUN。记录网页出口 IP、检测到的解析器 IP 和运营商名称。测试域名会产生真实网络请求,不要在有保密要求的环境中随意关闭保护。
-
固定浏览器
使用同一浏览器和同一配置测试。以 Edge 为例,进入「设置」→「隐私、搜索和服务」→「安全性」,检查“使用安全的 DNS”选项;不同版本措辞可能变化,可在设置中搜索“安全 DNS”。记录原值,测试时先关闭独立解析。
-
开启代理
在 v2rayN 主窗口的「系统代理」菜单选择「自动配置系统代理」,确认当前节点可用。先只开系统代理,不同时切换 TUN、节点和路由模板,避免无法判断是哪项修改生效。
-
重复检测
重新打开检测页面,分别执行标准测试和扩展测试。每种状态重复 2 次,记录时间、出口 IP、解析器及所用路由模式。页面没有出现某个解析器,不代表其他应用一定不会使用它。
-
对照路径
若开启代理后仍出现基线中的运营商解析器,继续核对浏览器与系统 DNS。若只出现公共解析服务,需再确认该服务是否符合预期,以及访问它的连接是否确实经由代理。
结论:比较解析器身份,不只比较国家
解析器使用任播、转发或异地出口时,地区标注可能与节点不一致。先对比解析器 IP 与服务商,再结合路由和日志判断;不要为了让国家名称一致而反复更换 DNS。
远程 DNS 与直连 DNS:分别承担什么任务
本文按 v2rayN 7.x 桌面界面的设置思路说明。常见入口是「设置」→「DNS 设置」;旧版或不同界面构建可能将相关项目放在「设置」→「参数设置」中。先核对本机菜单与当前内核,找不到同名字段时不要把另一内核的配置直接粘贴进去。
| 项目 | 主要用途 | 需要确认的条件 |
|---|---|---|
| 远程 DNS | 处理预期通过代理访问的域名 | 解析请求本身的出站路径与规则相符 |
| 直连 DNS | 处理直连站点、必要的节点域名解析 | 不得让应代理的域名因宽泛规则落入直连解析 |
| 系统 DNS | 供操作系统及未接管的程序使用 | 系统代理通常不会接管所有系统 DNS 请求 |
| 浏览器安全 DNS | 浏览器独立使用 DoH 等方式解析 | 浏览器策略及其连接路径可能绕开客户端 DNS 设置 |
远程解析可使用配置界面支持的 DoH 地址,例如 https://dns.google/dns-query;直连解析可按网络条件选择可达的解析器,例如 223.5.5.5。这些是服务地址示例,不是适用于所有网络的固定答案。填入地址以后,还要确认当前内核支持该写法,以及查询会通过哪个出站发送。
- 保存原配置。记录当前远程 DNS、直连 DNS、路由模板和内核类型;自定义配置先留副本,便于逐项回退。
- 设置远程解析。在「设置」→「DNS 设置」中调整当前内核对应的远程 DNS 项。若界面提供解析流量的出站选择,确认选中代理出站;没有该选项时,应检查实际生成配置与相关路由规则。
- 保留必要直连。直连域名使用直连 DNS。代理服务器如果以域名填写,还需要一条不依赖该代理自身的引导解析路径,否则可能出现“先连上代理才能解析代理地址”的循环依赖。
- 应用并复测。保存后确认内核重载成功;若没有自动重载,停止并重新启动连接。回到同一检测页面重复测试,再检查原本应直连的网站是否正常。
TUN 与 FakeDNS:接管范围和地址映射要分开看
系统代理模式适合浏览器等遵循代理设置的程序,但不能天然覆盖所有应用。TUN 通过虚拟网卡接收匹配路由的 IP 流量,适合进一步处理不使用系统代理的程序。它是否接住 DNS,还取决于 DNS 劫持规则、系统路由、IPv6 和其他网络软件,不能只看 TUN 开关是否亮起。
FakeDNS 则是另一层机制:内核为域名返回一个池内的合成 IP,再在后续连接中将这个地址映射回域名,便于按域名分流。Xray 的常见 IPv4 FakeDNS 地址池为 198.18.0.0/15。返回合成 IP 本身不是加密,也不代表解析已自动经过远程代理。
- 先确认支持条件:在 v2rayN 中检查所选内核及该配置模式是否支持 FakeDNS。不同内核的字段与实现不同,不要把 Xray 的
fakedns配置原样套进其他内核。 - 确保成对接管:获得合成地址的应用,其后续连接也必须回到同一套映射机制。只改变 DNS 而没有接住连接,可能造成域名可以解析、网页却打不开。
- 检查 IPv6:仅设置 IPv4 DNS 或 IPv4 路由,不能证明 IPv6 路径也被覆盖。应分别核对 AAAA 查询与 IPv6 连接,而不是把关闭 IPv6 当成通用修复。
- 退出后清缓存:关闭 FakeDNS 或 TUN 后,可在 Windows 终端运行
ipconfig /flushdns,并退出、重开浏览器。浏览器或应用自身的缓存不一定随系统缓存一起清除。
结论:先跑通常规解析,再试 FakeDNS
先用普通 DNS 完成“节点可用、解析可达、路由正确”的闭环,再单独启用 FakeDNS。若只有某个程序异常,优先核对它是否同时经过 DNS 接管与连接接管,不要立即更换整套节点。
DNS 超时与连接失败:按报错定位问题
报错要结合前后日志读取。不同内核版本的前缀、域名和地址会变化,下面保留的是常见错误片段,而不是完整日志。短时间内同时修改节点、DNS、路由和浏览器设置,会把原因混在一起。
报错:lookup example.com: i/o timeout
原因与解法:域名查询等待超时,可能是解析器不可达、DNS 出站选错或网络丢包。先核对解析器地址及其路由,只替换一项解析设置,重启连接后复测。
报错:no such host
原因与解法:查询没有得到可用主机记录,可能涉及域名拼写、负缓存或解析器应答。先核对日志中的具体域名,区分它是节点地址还是目标站点,再清缓存并用另一条可信解析路径对照。
报错:connect: connection refused
原因与解法:目标端口拒绝连接,并不等于 DNS 泄漏。若出现在本地 SOCKS 测试中,先检查 v2rayN 是否正在运行、实际监听端口是否与命令一致。
下面命令用于区分系统解析与 SOCKS 代理路径。示例假定本地 SOCKS 监听在 127.0.0.1:10808;请先从本机设置或启动日志确认实际端口。监听地址应限制在本机,排查 DNS 不需要把代理端口开放给整个局域网。
# 查看系统 DNS 配置
ipconfig /all
# 查询系统默认解析器;该命令不会自动跟随系统 HTTP 代理
nslookup example.com
# 通过 SOCKS 传递目标主机名,避免 curl 先在本地解析目标域名
curl.exe --socks5-hostname 127.0.0.1:10808 --connect-timeout 10 -I https://example.com/
# 修改解析设置后清除 Windows DNS 缓存
ipconfig /flushdns
--socks5-hostname 会把目标主机名交给 SOCKS 代理端处理,但代理端最终如何解析,仍由内核配置决定。命令成功只能说明这条请求链能够工作,不能证明浏览器或其他程序没有旁路解析。也不要把 nslookup 显示的本地 DNS 地址,直接当作浏览器泄漏的证据。
修复验收:把测试结果和使用场景一起保存
DNS 泄漏修复的终点不是“检测页面只剩一个结果”,而是预期代理的查询与连接使用了正确路径,同时保留必要的直连业务。扩展测试可能显示同一解析服务的多个出口地址;数量变化本身不是故障。
- 浏览器复测:在已记录的安全 DNS 状态下运行两轮检测,确认没有意外回到基线中的运营商解析器。
- 应用复测:选择一个日常使用、但未必遵循系统代理的程序单独验证。浏览器测试通过,不能替它证明接管成功。
- 分流复测:分别访问预期直连与预期代理的站点,观察日志中的出站选择;需要临时提高日志级别时,排查后恢复,避免长期记录过多访问细节。
- 网络切换复测:从家庭网络切到手机热点后再测一次。新网络的 DNS、IPv6 与路由变化,可能让原先的配置边界重新暴露。
- 保存可回退记录:记录 v2rayN 版本、内核版本、代理模式、DNS 服务地址及检测时间。分享日志前删除订阅链接、认证信息和不必要的访问域名。
如果网页一直正常,只是检测页面的地区与节点不同,先查解析器身份和转发关系;如果切换 DNS 后所有节点都无法连接,先恢复原设置并检查节点域名的引导解析。按“浏览器、DNS 出站、系统接管”的顺序逐层排查,通常比同时开启所有功能更容易找到原因。