centos7服务器发现curl一个ip通,ping同一ip却不通?
为什么会出现这个问题?
ping不通(ping了百度其中一个ip)
$ ping 220.181.57.216
PING 220.181.57.216 (220.181.57.216) 56(84) bytes of data.
--- 220.181.57.216 ping statistics ---
80 packets transmitted, 0 received, 100% packet loss, time 78998ms
但是curl可以通
$ curl 220.181.57.216
<html>
<meta http-equiv="refresh" content="0;url=http://www.baidu.com/">
</html>
请问为什么?可以肯定这个ip是可以ping的,我自己的电脑就能ping通,试了几个IP,都是同一个情况
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
ping通需要路由的每个节点都支持ICMP协议转发, 你的情况很可能是服务器防火墙把ICMP协议禁掉了.
你可以分别在你的机器上和服务器上互相用`traceroute IP`(windows上用tracert)试试, 看看是哪一跳过不去
其实
ping
和curl
没有任何联系,大多数排查网络故障往往是从ping
开始,于是很多新手都被误导了,认为能ping通服务就一定是通的,或者反过来也是一样的。其实这是错误的认识,ping默认使用的协议是
ICMP
,你会发现不是tcp/udp socket。所以服务器或防火墙可以通过拒绝ICMP协议来实现拒绝ping
。所以不能ping通不代表你的socket不能访问,这俩没有直接联系,压根不是一个协议