局域网内 两台主机单向ping 通
问题:
在同一个局域网内的多台主机 ,主机A地址192.168.1.5 主机B地址192.168.1.6, 主机C地址192.168.1.7,主机D地址192.168.1.8 主机AB可以互相PING通,主机BC可以互相PING通,主机A可以PING通主机C,但是主机C不能PING通主机A。
原因:
主机A上面的ARP缓存表中的C主机IP解析的MAC地址错误(该MAC地址是D的MAC地址),
A可以PING通C主机的IP地址,是因为A其实PING到了局域网中的D主机,而不是PING到了A主机;
而C主机PING不通A主机,是因为C发给A的ICMP包,虽然A收到了,但是A主机却将ICMP的响应包发送给了D主机,所以C一直收不大ICMP的响应包,所以一直PING不同。
这个可以通过在A主机、B主机和D主机上都运行如下命令,看看解析的MAC地址
arp -a | grep 192.168.110.7
可以看到B主机和D主机解析的MAC地址都是C主机的MAC地址,但是A主机解析MAC地址却不是C的MAC地址。
至于是什么原因造成ARP解析错误,这个需要另外分析。
解决:
在A主机清空ARP缓存,
arp -n|awk '/^[1-9]/{system("arp -d "$1)}'
重新查看arp缓存表,查看是否正确解析C的IP地址
arp -a | grep 192.168.110.7
如果正确解析到C的MAC地址,说明解析正确,在C主机PING A主机应该就可以PING通了。
补充:
其他局域网内两台主机单项ping通原因,A主机可以PING通B主机,B主机不能PING通A主机。
原因1:A主机开启了防火墙,需要关闭防火墙。
原因2:B主机有多块网卡设置了同一个局域网的不同IP地址,导致PING命令不知道从那个网卡发送数据包。
本文地址:https://blog.csdn.net/abcdu1/article/details/108838999
上一篇: 会做菜的机器人来了 还能做100道美食
下一篇: 图像缩放float 乘法