欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

局域网内 两台主机单向ping 通

程序员文章站 2022-07-08 12:32:04
问题:在同一个局域网内的多台主机 ,主机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主机;....

问题:

在同一个局域网内的多台主机 ,主机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