VPN/代理下的 DNS 泄露?禁用 Windows 智能多宿主 DNS 解析!

通过组策略、注册表或临时脚本禁用 Windows Smart Multi-Homed Name Resolution,解决多网卡环境下的 DNS 污染问题

周一 1月 20 2025
811 字 · 4 分钟

Windows 的智能多宿主名称解析(Smart Multi-Homed Name Resolution)旨在加速 DNS 查询,但在使用 VPN 或代理时会导致 DNS 请求绕过隧道,造成泄露和污染。

问题背景

当系统存在多个网络接口时,Windows 会向所有配置的 DNS 服务器同时发送查询,使用最快返回的结果。这在以下场景会出问题:

  • VPN 环境:DNS 请求可能从物理网卡发出,绕过 VPN 隧道
  • TUN 代理模式:如 sing-box、v2rayN 等,DNS 查询可能泄露真实请求
  • 多网卡服务器:可能收到来自错误网络的 DNS 响应

典型症状:

  • 使用 VPN 后仍能被运营商劫持 DNS
  • 代理软件无法完全接管 DNS 解析
  • 访问某些网站时 DNS 被污染

方法一:组策略编辑器(推荐)

适用于 Windows Pro/Enterprise/Education 版本。

  1. 按下 Win + R,输入 gpedit.msc,按 Enter

  2. 导航至:计算机配置管理模板网络DNS 客户端

  3. 找到并双击 “禁用智能多宿主名称解析”

  4. 选择 “已启用”,点击 应用确定

  5. 重启电脑使更改生效

方法二:注册表编辑器

适用于所有 Windows 版本(包括 Home 版)。

  1. 管理员身份运行 PowerShell

  2. 执行以下命令:

Terminal window
reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient" /v "EnableMulticast" /t REG_DWORD /d 0 /f
  1. 重启电脑使设置生效

💡 此命令在注册表中创建 EnableMulticast 键值并设为 0,效果等同于组策略设置。

验证注册表设置

Terminal window
reg query "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient" /v EnableMulticast

输出 0x0 表示已成功禁用。

方法三:临时禁用(针对特定代理软件)

如果只需要在运行特定代理时禁用,可以通过脚本临时将网卡 DNS 设为无效地址。

启动代理前执行

Terminal window
# 将指定网卡的 DNS 设为无效,阻止其发送 DNS 请求
Set-DnsClientServerAddress -InterfaceAlias "以太网" -ServerAddresses ("0.0.0.0")
Set-DnsClientServerAddress -InterfaceAlias "Wi-Fi" -ServerAddresses ("0.0.0.0")

关闭代理后恢复

Terminal window
# 恢复为自动获取(DHCP)
Set-DnsClientServerAddress -InterfaceAlias "以太网" -ResetServerAddresses
Set-DnsClientServerAddress -InterfaceAlias "Wi-Fi" -ResetServerAddresses

⚠️ 此方法需根据实际网卡名称修改 -InterfaceAlias 参数。使用 Get-NetAdapter 命令查看所有网卡名称。

IPv6 注意事项

上述策略主要影响 IPv4。如果设备同时有 IPv6 地址,DNS 请求仍可能通过 IPv6 泄露。

解决方案:

  • 禁用网卡的 IPv6:在网络适配器属性中取消勾选 IPv6
  • 使用 WFP 严格路由:通过 Windows 筛选平台强制所有流量走指定接口
  • 代理软件配置:确保代理同时接管 IPv4 和 IPv6 的 DNS

总结

方法适用版本持久性推荐场景
组策略Pro/Enterprise永久长期使用 VPN/代理
注册表所有版本永久Home 版用户
临时脚本所有版本临时仅特定软件需要

建议:如果你经常使用 VPN 或 TUN 模式代理,推荐使用方法一或方法二永久禁用此功能。

⚠️ 副作用:禁用后,DNS 解析可能略微变慢(因为不再并行查询),但可以确保 DNS 请求完全走预期的网络接口。


Thanks for reading!

VPN/代理下的 DNS 泄露?禁用 Windows 智能多宿主 DNS 解析!

周一 1月 20 2025
811 字 · 4 分钟