在 Windows 7 / 8 开发者预览版上阻止 VPN 更改 DNS

Wie*_*sma 12 vpn windows-7 routing windows-8-preview

我有一个客户使用 VPN 连接,但是它会自动将我的 DNS 设置配置为一个不存在的 DNS 服务器,这意味着每个 DNS 解析都会超时,直到尝试替代方法,这确实减慢了所有 Internet 流量。

有什么方法可以防止应用程序覆盖我的 DNS 设置(不启用 UAC)?

或者,有没有一种方法可以设置某种本地路由,说“当 IP 地址 A 的 DNS 请求进来时,实际上使用 IP 地址 B”?

我正在使用 Windows 8 开发人员预览版(但我怀疑它应该与 Windows 7 一样工作)。

谢谢

Ash*_*oss 21

除了在 VPN 连接上静态分配 DNS 服务器之外,我认为没有办法防止它发生。

要更改查询 DNS 服务器的顺序,应该能够按照https://superuser.com/a/314379/120267更改接口绑定顺序,但这似乎不会影响 VPN 连接我在 Windows 7 上的个人测试;我已经确认HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Linkage\Bind,无论接口绑定顺序设置如何,我的 VPN 连接始终添加到列表的顶部。

但是,您可以在建立 VPN 连接后重置 DNS 更改。

收集信息

打开命令提示符(Start-> Run...-> cmd),然后运行netsh interface ipv4 show dnsservers. 您将看到类似于以下内容的输出:

Configuration for interface "My VPN"
    Statically Configured DNS Servers:    11.22.33.44
                                          55.66.77.88
   ...

Configuration for interface "Local Network Connection"
    DNS servers configured through DHCP:  192.168.0.1
                                          192.168.0.2
    ...
Run Code Online (Sandbox Code Playgroud)

您需要VPN的接口名称,以及可选的非 VPN 连接的第一个DNS 服务器。在本例中,它们分别是My VPN192.168.0.1


设置一切

选项 1:禁用 VPN DNS

假设您根本不需要 VPN 的 DNS 服务器,您只需在命令提示符下运行以下命令:

netsh interface ipv4 delete dnsservers name="<Interface Name>" address=all validate=no

Eg: netsh interface ipv4 delete dnsservers name="My VPN" address=all validate=no
Run Code Online (Sandbox Code Playgroud)

如果netsh interface ipv4 show dnsservers再次运行,您会看到与 VPN 关联的 DNS 服务器已被删除;您的非 VPN 连接的 DNS 服务器将用于解析主机名。


方案二:补充VPN DNS

如果您需要 VPN 的 DNS 服务器来解析 Intranet 主机名,您可以在命令提示符下运行以下命令:

netsh interface ipv4 add dnsservers name="<Interface Name>" address=<Non-VPN DNS server> index=1 validate=no

Eg: netsh interface ipv4 add dnsservers name="My VPN" address=192.168.0.1 index=1 validate=no
Run Code Online (Sandbox Code Playgroud)

在这种情况下,netsh interface ipv4 show dnsservers将显示您的非 VPN 连接的第一个 DNS 服务器已添加到您的 VPN 的 DNS 服务器列表的顶部。它将首先用于解析主机名,如果不成功,则回退到使用您的 VPN 的常规 DNS 服务器。

  • &gt; 在 Windows 10 和 11 上,DNS 优先级由接口指标确定,此处记录了这一点 - 将首先使用指标值最低的接口上的 DNS 服务器。 https://serverfault.com/a/1103817/345992 (2认同)