当我对广播地址执行 ping 操作时,我收到来自自环回 127.0.0.1 的回复。这种情况正确吗?还是我应该从最长前缀 IP 获得回复?
ping 255.255.255.255
PING 255.255.255.255 (255.255.255.255): 40 data bytes
68 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=2 ms
68 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=1 ms
68 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=1 ms
68 bytes from 127.0.0.1: icmp_seq=4 ttl=64 time=2 ms
68 bytes from 127.0.0.1: icmp_seq=5 ttl=64 time=1 ms
--- 255.255.255.255 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max/stddev = 1/1/2/<1
答案1
255.255.255.255 是一个广播地址,您将向本地网络上的每个设备发送 ping 命令,并且您将收到每个设备的回复。ping 命令仅显示它收到的第一个回复,就您而言,您自己的 PC(127.0.0.1 是环回)是最快的。如果您使用数据包嗅探器(如 Wireshark),您将能够看到所有回复。
有些设备会回复普通 ping,但不会回复发送到广播地址的 ping。这是为了防止一种称为 Smurf 攻击的漏洞。
255.255.255.255 还将向互联网上的每台设备广播。出于显而易见的原因,该地址被阻止,消息不会离开您的本地网络。
答案2
简短的回答:这种行为可以被认为是可以的,这只反映了路由表是如何设置的。
较长的回答:您在路由表中有一个顺序概念,为了做出更相关的决定,您应该首先设置最长的前缀。如果您这样做,您的示例的相同 ping 将反映您系统上的外部 IP。