通讯需要双方共同参与,如果一台电脑和另一台电脑进行建立连接,他们之间都必须进行数据的交互,如果其中任何一方没有进行交互,那么连接将无法建立。
A主机能pingB主机,证明a主机有到b主机的路由,而b主机也有到达a主机的路由,并且a发送了一个数据包得到的B主机的回应!证明此条链路和各个设备正常!
那么,B主机为什么不能ping通A主机,基本可以判定a主机并没有回应b主机的请求,导致b主机无法得到A的响应而出现超时!如果在同一局域网之中出现个问题有可能是A主机的防火墙阻止了ping回应,可以允许Ping回显请求连接或者直接关闭防火墙!如果是不同的网段或者互联网上主机,有可能对端禁止了ICMP的响应!
如果问这个问题的是个普通人,那我会让你看看a电脑防火墙是否关闭,ab电脑是否在同一网段,a电脑的ip是否是公网地址。如果你是个网管,那么请检查a电脑ip是否冲突,mac地址是否冲突。
这个情况,如果你没有给定更详细信息,实际上比较复杂!
先看看ping 原理,就是A 构造一个icmp 包,发给b ,b 给出回应了!中间涉及到ip 与mac 的转换。
所以a 可以ping 通b ,b 不能ping 通a ,只能说明物理层是通的!
a 到b 之间的网络拓扑上,任何一个配置可能都会影响到这个结果!如果简单一点,在同一个局域网内,那么可能就是a 的防火墙之类的数据配置影响,可能直接丢掉了数据包!
如果a ,b 直接网络拓扑结构比较复杂,经过多个路由器,那么也有可能是中间设备配置数据的问题,担心b 到a 的路由不通!需要逐段排查!
补充2020.3.30
一般情况下,a 与b 之间没有隔离设备,a 到b 通,同时b 到a 也会默认通的,
但是实际上,防火墙类设备,会过滤一些数据包,比如从防火墙外访问防火墙内,一般会限制访问,但是可以设置防火墙内访问防火墙外,这样就会出现单通!
这样a 在防火墙内,b 在防火墙外,a 可以ping 通b ,但是b 去ping a ,就会被防火墙丢掉数据包,自然不通!
所以,这种问题,一般检查是否在防火墙上设置了过滤,路由器上设置了acl 单向限制之类的!
主要就三个方向吧
1.A的主机防火墙
2.中间交换机有acl
3.中间过了防火墙,但是一般防火墙策略都是单项放通的