【问题标题】:What could cause a ping to fail if I am able to load the site's homepage in a browser?如果我能够在浏览器中加载站点的主页,会导致 ping 失败的原因是什么?
【发布时间】:2012-12-03 15:38:29
【问题描述】:

我可以从网络浏览器加载网站的主页,但是从命令行 ping 它会导致多台机器 100% 丢失。

如果超出范围,我深表歉意。指出我正确的方向,我会在别处提出我的问题。

traceroute 如下所示(随机,我的意思是我不认识它们):

Hop (ms)    (ms)    (ms)             IP Address Host name
1     3       0       0          __random.ip__   __random.host.net__  
2     4       0       0          __random.ip__   __random.host.net__  
3     0       0       0          __random.ip__   __random.host.net__  
4     20      20      20         __random.ip__   __random.host.net__  
5     20      20      21         __random.ip__   __random.host.net__  
6     28      28      28         __random.ip__   __random.host.net__  
7     32      32      31         __random.ip__   __random.host.net__  
8     Timed out       Timed out       Timed out               -  
9     Timed out       Timed out       Timed out               -  
10    Timed out       Timed out       Timed out               -  
11    Timed out       Timed out       Timed out               -  

【问题讨论】:

  • 当你说“生活在互联网上”时,你到底是什么意思?您的意思是“我能够从网络浏览器加载网站的主页”吗?
  • 您是否托管在具有直接 IP 的虚拟服务器上?或者您是共享主机的一部分?您的网络是否有一些限制可能会阻止接收到的数据包?
  • @Andy 是的。 “活着”还有其他定义吗?
  • @Matt 该网站托管在专用服务器上,我不相信网络会阻止数据包......为什么会这样?
  • 您是否尝试过traceroute 来查看连接失败的位置?

标签: ping traceroute


【解决方案1】:

ping 是一个实用程序,它向机器发送ICMP“回显请求”消息,如果支持并启用,机器将回复发送给它的相同数据包。

该网站正在由侦听 TCP 端口 80 的网络服务器提供服务。

这是两种完全不同的服务,任何机器上都不能启用,或者两者都不能启用。

您可能看到的是您正在连接的机器正在运行一个网络服务器,但禁用了 ICMP 请求。此外,您和这个盒子之间可能存在任意数量的防火墙,其中任何一个都可能过滤掉 ICMP 流量。

事实上,最新版本的 Windows 在默认防火墙规则中禁用了 ICMP ECHO。它必须明确启用。

【讨论】:

  • 那么,ping 和 Web 服务器的可用性之间真的没有联系吗?默认禁用ICMP ECHO的原因是什么?
  • 没错。他们是无关的。有些人认为这是一种安全改进。一些网络扫描器会首先尝试 ping 主机以查看它是否已启动,然后再尝试扫描打开的端口/漏洞。因此,如果它没有响应 ping,它可能不会被扫描。它基本上是一种选择加入而不是选择退出防火墙的心态。 “阻止一切,只有在需要时才启用。”
  • 因为这是一个 Windows 服务器,我敢打赌 ICMP ECHO 在 Windows 防火墙中被禁用。这就是为什么你不能ping它。如果您确实需要能够通过 Internet ping 服务器,则可以启用此功能。但我不明白这一点。
  • 我敢打赌你也是对的。在我们公司内部,ping 站点以测试服务器是否已启动并运行是一种习惯,但不确定如果它们没有真正连接,这将如何成为一种做法。没有必要对它执行 ping 操作。我们最近升级了服务器,我没有在这和搬家之间建立联系。感谢您带我浏览 @Jonathon。
  • 我的意思是,从历史上看,ping 一台机器是确定它是否“活着”并连接到网络的方法。一般来说,ping 是比 HTTP 请求更简单的测试(ICMP 是 OS 网络堆栈的一部分,而不是作为单独进程的 Web 服务器,需要配置等),所以它会是“嗯,开机了吗?ping通!”一种测试。但由于这些相对较新的防火墙限制,它并不是 100% 表明服务器处于“活动状态”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-24
  • 2019-02-15
  • 1970-01-01
相关资源
最近更新 更多