无法配置 Windows 以通过 ping 实用程序回复我正确的 IP 地址

无法配置 Windows 以通过 ping 实用程序回复我正确的 IP 地址

我的操作系统有问题。当我尝试 ping 本地主机名服务器时,ping 实用程序返回错误的 IP 地址。

在我的服务器上,我有 3 个接口:以太网 0、以太网 1、以太网 2

具有首选静态 IP 的主要接口是 Ethernet0。它在 OS 路由表中的度量值也最低,并且是唯一一个为其分配了网关的接口。使用 Ethernet0,我连接到域网络“example.local”。我已在此网络接口上静态设置 DNS 服务器。

其余接口(以太网 1 和以太网 2)没有网关,但它们分配了静态 IP。

现在来谈谈问题。当我运行 nslookup 时,我得到了以下响应:

PS C:\Users\Administrator> nslookup server01.example.local
Server:  dc01.example.local
Address:  100.72.10.133
Name:    server01.example.local
Address:  100.72.10.137

但是当我运行 ping 时我得到了这个响应:

PS C:\Users\Administrator> ping server01.example.local

Pinging server01.example.local [100.76.26.142] with 32 bytes of data:
Reply from 100.76.26.142: bytes=32 time<1ms TTL=128
Reply from 100.76.26.142: bytes=32 time<1ms TTL=128
Reply from 100.76.26.142: bytes=32 time<1ms TTL=128
Reply from 100.76.26.142: bytes=32 time<1ms TTL=128

Ping statistics for 100.76.26.142:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms

nslookup 中的 IP“100.72.10.137”是我从主 NIC 中首选的静态 IP。

ping 得到的 IP‘100.76.26.142’是我的以太网 2 网卡的静态 IP。

我想要实现的是,当我将“server01.example.local”放入直接位于此 server01 上的程序设置中时,程序将使用主 NIC 的 LAN IP(100.72.10.137)联系 localhost。我知道可以通过将“127.0.0.1 server01.example.local”添加到 hosts 文件来解决此问题,但我想更深入地了解这个问题。

为什么我在 ping 实用程序中有不同的响应?我已经在 NIC 中禁用了“禁用 TCP/IP 上的 NetBIOS”。我还禁用了服务“TCP/IP NetBIOS Helper”。我 100% 确定我的主机文件是空的。我重新启动了服务器,删除了缓存(ipconfig /flushdns)。我认为 ping 现在应该仅尝试使用主 NIC 上的 DNS 服务器来解析地址。但是,似乎 Windows 操作系统中还有另一个底层组件或逻辑,导致我使用 ping 返回错误的 IP 地址。

答案1

我对所发生事情的猜测是:

  • Windows 在所有接口上发送了 DHCP 请求,并且都得到了答复,从而获得了网关地址
  • Windows 认为 Ethernet2 是最快的,并将其作为主要接口
  • 然后通过以太网 2 进行 ping 操作。

此猜测要求所有接口都连接到网络。Windows 10/11 对这些指标的重视程度远低于以前的版本。

答案2

好的,我发现在我的操作系统的路由表中,两个接口具有相同的度量值。我将接口的度量值从“自动”更改为“手动”,并在 Ethernet0 接口上设置了最低度量值。我还需要将 Ethernet1 和 Ethernet2 接口上的度量值更改为更高的值。现在 ping 返回了正确的 IP 地址。

在这种情况下,当两个 NIC 具有相同的度量值时,我仍然不明白 ping(底层操作系统 DNS 解析流)如何决定返回哪个 IP 地址。

相关内容