简单来说,有哪些可能的原因ping 192.168.1.18
会被重定向到192.168.1.199
(或者一些其他的随机IP地址192.168.1.x
)?
--
以下是完整的故事。
我家里有一台网络打印机、一台 NAS 和三台计算机。网络设置如下:
有一天,其中一台电脑无法连接打印机。后来我发现从那台电脑 ping 的结果很奇怪:
C:\>ping 192.168.1.8
Pinging 192.168.1.8 with 32 bytes of data:
Reply from 192.168.1.8: bytes=32 time=4ms TTL=64
Reply from 192.168.1.8: bytes=32 time=2ms TTL=64
Reply from 192.168.1.8: bytes=32 time=2ms TTL=64
Reply from 192.168.1.8: bytes=32 time=2ms TTL=64
Ping statistics for 192.168.1.8:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 2ms, Maximum = 4ms, Average = 2ms
C:\>ping 192.168.1.18
Pinging 192.168.1.18 with 32 bytes of data:
Reply from 192.168.1.199: Destination host unreachable. <------- why .199 instead of .18 ??
Reply from 192.168.1.199: Destination host unreachable.
Reply from 192.168.1.199: Destination host unreachable.
Reply from 192.168.1.199: Destination host unreachable.
Ping statistics for 192.168.1.18:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), <---- and why received=4 but not lost?
C:\>
这个问题似乎与我连接到哪个无线 AP 无关。此外,我在家里的其他计算机上没有看到同样的问题。
--
这些信息应该不相关。我把它放在这里只是为了提供一些提示。
- 路由器:华硕RT-AC88U + 华硕RT-AC68U
- 打印机:HP Color LaserJet Pro
- 操作系统:Windows 10(家里的其他电脑运行的是 Windows 10 和 11)
答案1
没有任何东西被“重定向”,您只是误解了 ping 命令的输出。
为什么是 .199 而不是 .18
这是第一个误解。它说的是Reply from 192.168.1.199
。通俗地说:响应(“来自192.168.1.199
”)要么来自执行 ping 的设备(如果没有路由器参与,例如,如果目标设备与执行 ping 的设备位于同一子网中,就会发生这种情况),要么来自“负责”目标 IP/子网的路由器(如果目标设备位于不同的子网中并且必须进行路由)。如果您仔细想想,它不可能是来自的回复,.18
因为该设备无法访问,因此它无法给出回复。
为什么收到=4但没有丢失?
这是第二次误解,Reply from *.*.*.*: Destination host unreachable
不算作lost
而是received
(毕竟它说的是“ Reply from...
”)。输出Request timed out
将算作lost
。
您可以通过 ping LAN 上的已连接设备并在 ping 过程中拔下目标设备来测试它。然后您将得到Request timed out
。如果您清除 ARP 表(arp -d *
在 Windows 中)并再次 ping 设备,您应该会收到消息Destination host unreachable
。这是因为,再次用外行的话来说,在清除 ARP 表后,将不再有与 IP 地址关联的 MAC 地址,因此 ping“无法发送”。
是的,我同意这不是很直观,考虑到你的期望(也可能是大多数其他用户的期望),但如果你考虑到它的底层工作原理(ARP 解析、路由等),它或多或少是有意义的。