ping以检查互联网是否可用的外部可靠IP地址是什么?[关闭]


53

是否有任何常用的始终启动服务器,我可以将其设置为在自动模式下ping以检测互联网是否可用?像Google之类的?可能是8.8.8.8?

我的具体情况是我正在使用双WAN路由器。每个WAN连接到一个ISP。当我的钱以ISP之一结尾时,它并没有阻塞渠道。而是,它重定向到警告页面。因此,路由器认为互联网已开启,因为数据正在传输。该路由器的另一种选择是ping某个地址以检查互联网是否打开。

我想知道,如果我ping 8.8.8.8,是否会因为使用不当而被Google禁止?我怀疑Google可能会有一些配额。如果我经常对它的名称服务器执行ping操作,那么有时会遭到DNS拒绝。


1
我建议您测试一下您真正想要的。当您说“互联网可用”时,您是什么意思?
David Schwartz 2014年

1
@DavidSchwartz他表示互联网不可用。如果您要进行特定的测试,那么很多都将基于WAN,因此无法选择测试“ cos”,但是ISP会知道。
barlop 2014年

5
ping stackexchange.com;)

6
@barlop有点有趣,但没有帮助。“互联网不可用”是什么意思?如果我无法访问Google的网站,是否“互联网不可用”?如果DNS有效但网页不起作用,是否可以使用互联网?回答问题的第一步是理解问题。
David Schwartz 2014年

4
@DavidSchwartz我不是在开玩笑,考虑到他在谈论ping谷歌相关IP作为测试,而不是ping像www.google.com这样的域作为测试,他显然意味着在DNS不可用但其他一切都可用,然后他认为互联网可用。即不是不可用。如果您想找到一个问号,则是b路由器是否“互联网不可用”,但显然您是否可以提供测试4可用的WAN或其中的详细信息比仅对一个特定案例或更糟(没有案例)进行测试要有用。
barlop

Answers:


56

尝试ping 8.8.8.8,它是Google主DNS服务器。我总是对其进行ping操作以验证我的连接,但从未找到它。另外,您可以尝试8.8.4.4,它是Google辅助DNS。


3
ping也接受TLD。因此ping google.com,如果您不想记住四倍的八倍,应该可以解决这个问题。
Johannes Pille 2014年

38
@JohannesPille ping域名需要可用的DNS服务器。如果DNS请求失败,则可能失败,这并不意味着您的Internet连接实际上已断开。
乔纳森

3
如果您的权威名称服务器将关闭,则您所在区域的网络不会有太大用处,不是吗?
约翰内斯·皮尔

6
@JohannesPille,您可以将主DNS覆盖为8.8.8.8,而不是DCHP默认设置
棘手的问题2014年

6
@JohannesPille ping不接受TLD。它还不接受域名。只是大多数域名也是主机名,并且解析为IP地址。因此,在浏览器如此聪明的情况http://example.comhttp://www.example.com,人们可以键入而不是,而不必先www.输入主机名,前提是该主机名最初无法使用。(ping army.mil如果您不相信我,请尝试。)
Dubu 2014年

33

您可以执行Microsoft的操作:检查

http://www.msftncsi.com/ncsi.txt

返回“ Microsoft NCSI”。(这验证您可以从站点(例如Wifi门户或其他站点)获取正确的数据)。

您也可以检查(例如ping)该dns.msftncsi.com

指向131.107.255.255(这可验证DNS是否正常工作)。

请参阅http://technet.microsoft.com/en-us/library/ee126135

注意:如果需要,您也可以访问http://www.msftconnecttest.com/redirect来使自己进入专属门户。


1
+1。在IIRC中,Windows还具有使用此方法检查Internet连接级别的API。
纳文2014年

7
为什么不更支持?几种真正好的方法之一,尤其是针对特定的Question。如果您的ISP将您的流量重定向到警告页面,则像这样检查答案是为数不多的可靠选择之一!
Falco 2014年

不再起作用
user2924019

1
什么不起作用?该站点仍返回正确的文本,dns仍解析为正确的IP,文档仍返回正确的信息
Mark Sowul

仅供参考,您无法ping通131.107.255.255-它超时。www.msftncsi.com经过a1961.g2.akamai.net23.59.182.83在撰写本文时解决-我不知道这是否是静态IP。虽然这是对例如“ cURL或浏览器”“什么是可靠地测试我的互联网连接的良好URL”问题的好答案,但它不是IP,只能通过简单的ping命令进行检查,因此不是此特定问题的答案。
iono

13

具体情况

您要ping ISP进入流量过载状态时无法路由的“最近”固定IP。在我的系统上,我可以通过使ADSL身份验证失败来模拟这种情况。在那种情况下,通过比较traceroute -n正常和异常条件下的结果,我发现到8.8.8.8(或任何肯定是外部站点)没有响应的第一跳是151.6.68.45,这是我ISP基础结构的一部分。

通过使用 IP为“检查活动”主机(重复测试后,只是要确定它固定的),我可以检测ISP异常没有得到一个假阳性的情况下,ADSL是确定的,但ISP路由有烦恼。

当然,我可以有意使用8.8.8.8 ,理由是如果无法访问Google的基础架构,我不在乎原因,我不妨尝试使用备用路由器。

一般情况

“仅互联网可访问” 比“ 8.8.8.8(或其他IP)可访问” 复杂得多。

对于快速,肮脏且不总是可靠的检查,可以ping 8.8.8.8是好的。但是,当您看到如何使用数字IP而不是域名时,您已经意识到,由于DNS问题,您可能具有IP连接并且仍然“没有Internet”

一个完整的诊断将不得不在您的PC附近开始。

  • 查询本地网络配置并检索网关和DNS服务器。
  • ping网关。它应该可以到达。如果没有,那就是本地问题。
  • 使用肯定是外部地址的短TTL(实际上是由hping提供的TCP跟踪路由)运行traceroute,可以使用8.8.8.8。
  • 您希望看到网关之后,一些额外的节点正在响应。

例如在家里的Windows XP中,我有:

 1    <1 ms    <1 ms    <1 ms  192.168.4.200   -- (constant) Home Linux box (gateway)
 2    <1 ms    <1 ms    <1 ms  192.168.0.1     -- (constant) ADSL modem
 3     *        *        *     *               -- WAN interface, always fails; expected
 4     *        6 ms     6 ms  151.6.64.30     -- (varies) ISP gateway

现在尝试ping DNS。它应该可以到达。更好的是,运行简单的DNS检查。为了避免DNS缓存,我有时会使用某些域,无论如何都可以回答所有查询。所以举个例子

$ host randomasdfdsasdqwerty987667.godaddy.com
randomasdfdsasdqwerty987667.godaddy.com has address 97.74.104.201

而如果DNS服务器不可靠,则相同的查询可能会返回wifi的强制门户的地址

$ host randomasdfdsasdqwerty987667.godaddy.com
captiveportal.homenet has address 192.168.4.200

或127.0.0.1,甚至是错误。

如果DNS失败,我可以尝试DNS IP地址(或其他DNS,例如OpenDNS的DNS)的跟踪路由。这不仅可以告诉我问题是DNS还是ISP,而且通常还可以使我解决中断问题。

如果此时一切正常,我就知道连接正常。对于某些网站,它可能仍然会失败。我现在需要isup.me做的只是:-),然后检查

http://www.isup.me/www.google.com
http://www.isup.me/mail.google.com

或诸如Down Detector之类的网站将使我了解“ Internet天气”。

实际上,在我的家庭服务器上有一个Squid缓存,错误页面包含从站点统计信息中成功检索到的最后一个数据,所以我可能会看到类似

                Google.com is not reachable

                STORM ALERT: 12 out of 14 sites are unreachable!

就像上周五在意大利这里发生的一样


如果可以ping 8.8.8.8,只需将您的DNS服务器切换到该地址即可,这样ISP DNS问题就不再重要
Zeb McCorkle 2014年

2
是的,但是只有确认问题确实基于DNS 之后,您才应该这样做。还存在其他类型的问题,它们很可能会使到8.8.8.8(或ICMP协议)的路由完整无缺,同时还会破坏其他内容。相反,无法ping 8.8.8.8可能根本不表示路由或DNS问题。
LSerni 2014年

6

就像一对夫妇说的那样,您可以对Google主DNS执行ping操作,以获取响应,但不依赖一个地址。该地址(由于多种原因)可能会关闭一段时间,在此期间您的软件将报告“无连接”,而实际上您的网络连接可能没有任何问题。您应始终尝试与多个地址进行通信,以便排除误报。

我会编写一个可对地址进行一次ping的功能,如果该地址无法继续移动到另一个地址(最多三个IP),并且当您收到几个肯定的答复时,该功能应通知您的应用程序/脚本互联网可用,并且继续。


3

当我为拥有flakey互联网连接的组织工作时,我有一个脚本测试了几台“始终处于运行状态”的服务器的连通性:首先是LAN路由器/交换机,然后是本地文件服务器,然后是T1路由器,然后是ISP的DNS,然后是Google。我将后两者作为数字地址和域进行了测试,以检查DNS问题和ping本身。如果任何ping操作都经常失败,我就知道最可能存在连接互联网的问题。

对于Google的数字地址,我只使用了以前从nslookup获得的地址-我从来没有遇到过这种情况。我认为8.8.8.8会更简单。

通常,当人们打电话说“互联网已关闭”时,事实证明只有DNS处于关闭状态。我们可能会称其为不同的东西,但是从我的同事们的角度来看,两种情况都无法使用互联网。



2

尝试使用DNS服务器,无论如何都将需要它(并且ISP的外部连接可能已断开)。这实际上取决于您想要什么。如果您需要访问特定的服务,请检查它。


仅当您知道ISP的DNS服务器正在响应ping时才有效。它可能正在工作,但阻止了ICMP。
奥利

这是最简单,最好的答案,IMO。
njbair
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.