网站没有ping,但是由Web浏览器打开

Ben*_*Sam 2 ip networking ping web

朋友们,我觉得这很奇怪(至少对我来说).因为我了解到互联网上的每个域名都有自己相应的IP地址.它存储在DNS上的某个位置.

现在,这是我从命令行ping google.com时得到的结果.

C:\Windows\system32>ping google.com

Pinging google.com [74.125.236.135] with 32 bytes of data:
Reply from 74.125.236.135: bytes=32 time=10ms TTL=55
Reply from 74.125.236.135: bytes=32 time=11ms TTL=55
Reply from 74.125.236.135: bytes=32 time=11ms TTL=55
Reply from 74.125.236.135: bytes=32 time=10ms TTL=55

Ping statistics for 74.125.236.135:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 10ms, Maximum = 11ms, Average = 10ms
Run Code Online (Sandbox Code Playgroud)

但当我ping www.cloudbees.net时,我得到以下内容:

C:\Windows\system32>ping www.cloudbees.net

Pinging www.cloudbees.net [75.101.143.131] with 32 bytes of data:
Request timed out.
Request timed out.
Request timed out.
Request timed out.

Ping statistics for 75.101.143.131:
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),
Run Code Online (Sandbox Code Playgroud)

我也尝试了它的IP地址(75.101.143.131),它返回相同的结果.但是当我从浏览器浏览相同的(www.cloudbees.net而不是IP地址)时,网页就会打开.怎么回事?

我在ping中注意到的另一个奇怪的事情是,当我ping google.com时,我在ping结果的末尾得到以下两行,我不知道www.cloudbees.net.

Approximate round trip times in milli-seconds:
Minimum = 10ms, Maximum = 11ms, Average = 10ms
Run Code Online (Sandbox Code Playgroud)

所以任何人都可以对整个机制以及为什么会发生这样的事情有所了解.

DrV*_*DrV 9

ping数据包使用ICMP协议,而在同一级别的网页上使用TCP协议.两者都通过IP协议,但它们是不同类型的数据包.(如果您听说过HTTP这个术语,它是一个从ICMP或TCP升级的协议.)

这意味着您和尝试ping的服务器之间的任何路由器或防火墙可能只会阻止您的ping.Ping服务器不是查看它是否已启动的可靠方法.某些操作系统会以默认配置阻止ping.

甚至有可能来自不同网络的人看到不同的行为.Popnoodles可能会让他通过,你或我没有.

当我ping www.cloudbees.net时,没有答案.但是,我告诉我的电脑了解更多:

traceroute 75.101.143.131

此命令显示ping数据包在其传输过程中遇到的服务器.在ping消失之前,我得到大约20台服务器.最后一台服务器是216.182.224.73,它位于亚马逊云中的某个位置.

因此,通过此信息,cloudbees.net可能使用亚马逊服务.但是,没有可靠的技术原因使ping数据包与TCP数据包的路由相同.通常情况确实如此,但如果有人想混淆路线,事情就可以有所不同.(在亚马逊的情况下,它不太可能.)

顺便说一下,可能存在多个与DNS名称对应的IP地址,并且多个DNS名称可能指向相同的地址.第一种方案(多个IP)在大型站点中非常常见,它可用于平衡负载.第二种情况(几个名称指向相同的地址)发生在基于名称的虚拟主机上,其中单个服务器上有多个网站只有一个IP地址.

  • `traceroute` 是大多数操作系统都包含的命令行实用程序。在 LInux/Unix/BSD/等中。它通常被称为“traceroute”,在 Windows 中它被称为“tracert”。因此,就像您在 Windows 命令行中输入“ping www.google.com”一样,您也可以输入“tracert www.google.com”。请注意,解析名称(尝试通过 IP 找出名称)可能会花费大量时间。为了避免这种情况,您可以尝试“tracert -d 8.8.8.8”。“-d”命令行开关告诉实用程序不要将数字地址解析为名称。 (2认同)