您当前的位置:首页 > 计算机 > 网络通信

linux下ping命令发出后没有反应,一般是time out,超时没有得到应答造成的。

时间:02-06来源:作者:点击数:

有同事反馈,从一台linux服务器ping局域网的两台pc,一台可以ping通,一台ping不通,问什么原因,让给解决。

问他从哪里ping的,反馈测试环境172.101.203.38(分配ip时,规划人员不懂,分配了公网网段)服务器ping办公

环境pc的ip192.168.207.137可以通,但另一个192.168.207.136不通。ping命令回车后没有任何回显打印。

在我的pcwin7环境下,ping也ping不通,显示time out。

奇怪的是windows下ping都会有回显,这个怎么没有回显?

进到核心交换机里看一下是否192.168.207.136是否在线?

发现arp表里有这个ip地址,证明在线。

告知同事,这种问题,在服务器上开启ping命令,然后在对应主机上抓包,若发现能收到ping的request消息,但没有reply发出,就是防火墙拦截的ping的request消息通过,关闭防火墙或防火墙

的入规则允许ping消息通过就ok了。

反馈是防火墙的问题,关闭后正常。

事后,验证一下linux下ping没有反应的问题。准备找一台192.168.205.0/24网段的linux服务器,ip是192.168.205.28。ping一台同网段win10的pc192.168.205.61,打开防火墙,高级设置里默认入站规则是拦截ipv4的icmp的request消息。找一台207网段的同样win10操作系统,默认防火墙打开的,拦截icmp消息的192.168.207.135的pc进行跨网段验证。

已知,这两个网段的网关192.168.205.1和192.168.207.1的mac地址都是C8-50-E9-67-FA-0C。

下图是服务器的ip地址和对应路由:

  • 首先,pc去ping一下同网段但打开防火墙的pc192.168.205.61看看结果?

然后服务器里开启抓包,并去ping。

服务器里ping的结果是没有任何回显,ctrl+c中断后,有统计数据,没有收到应答消息。

看到arp发出,得到响应后,发出ping的request消息,而ping的界面没有任何回显。

  • ping一下同网段不存在的一个ip192.168.205.44看看结果?

发现,windows系统会用自身ip回复无法访问目标主机,抓包显示去查192.168.205.44的目标ip的mac地址,没有得到响应,每个一秒发一次,发12次。

用服务器去ping192.168.205.44

发现centos7.2会显示自身ip地址显示目标主机不可达,arp消息一秒发出一个,但发现有的centos6.5是不显示任何提示的。

  • 跨网段去ping一下不存在的地址,192.168.207.44

pc去ping192.168.207.44

发现当对方ip不存在时,会显示无法访问目的主机。

结论:pc去ping不存在的跨网段ip,会出现网关回的目的主机不可达消息。发出ping的request消息后一直在等回包(因为windows超时时长是5s)。网关3秒后,回unreachable消息。

用服务器去ping不存在的ip现象:

会回显目的主机不可达

抓包看

每一秒发出一个ping的request消息(linux超时时长是1s),网关收到3次,回一个主机不可达消息。

  • 跨网段ping在线,但打开防火墙的设备192.168.207.135的现象

结论:pc去ping跨网段的打开防火墙,拦截ping的request消息的主机,会显示time out的提示,抓包是等待回包5s超时后重新发出request消息。

服务器去ping的现象:

结论:跨网段的ping打开防火墙的pc,会出现没有任何回显的现象。

综上:结论是当linux环境下,ping命令执行后若没有任何回显,就是ping的消息发出没有得到响应包造成的。可能对方开启防火墙拦截了ping消息,或者其他原因,目的主机没有收到,可能是源主机发错了地方,或目的网关发错了地方。

知识点:

1、linux下ping的request消息发出后,超时时间是1s,而windows是5s。

2、有的linux系统,ping同网段的不存在的ip地址,也会出现无回显的现象,这个可以通过arp -n来查arp缓冲来排除。time out的现象,是能看到mac地址的。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门