当我尝试 ping 命令时,当我在 wireshark 中看到第一个 ARP请求时, ARP > > strong>仅回复 ICMP请求,
我认为这就是ARP请求进入第一个原因的原因,
尝试 ping 时,需要知道目标设备的 MAC 地址, 所以它试图首先获取MAC地址,然后发送 ICMP请求
如果确实如此,可以在ping命令中提及mac地址(不要尝试ARP)
如果不是这样的话是什么原因
答案 0 :(得分:2)
您会注意到ARP请求仅在您第一次运行ping
时发生。如果您再次运行它(第一次运行后不久),您将看到ping
立即启动ICMP请求。这是因为当系统通过ARP发现IP地址/ MAC地址关联时,它会将结果存储在本地arp cache中。缓存中的条目会在一段时间后过期。
您可以使用arp
命令手动填充ARP缓存:
arp -s <ipaddr> <macaddr>
E.g:
arp -s 192.168.1.1 192.168.1.1
您可以看到ARP缓存的内容,如下所示:
arp -an
因此,如果您使用目标主机的MAC地址手动更新ARP缓存,则可以通过网络上的ARP请求对其进行ping操作。