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

Dim*_*ims 55 networking internet

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

我的具体情况是我使用的是双 WAN 路由器。每个 WAN 都连接到 ISP 之一。当我的钱在其中一个 ISP 上结束时,它并没有阻塞通道。相反,它会重定向到警告页面。因此,路由器认为互联网已开启,因为数据正在传输。此路由器的其他选项是 ping 某个地址以检查互联网是否打开。

我想知道,如果我ping 8.8.8.8,我会不会因为使用不当而被谷歌封禁?我怀疑,谷歌可能有一些配额。如果我太频繁地 ping 它的名称服务器,那么我有时会收到 DNS 拒绝。

小智 58

尝试 ping 8.8.8.8,它是 Google 的主 DNS 服务器。我总是 ping 它以验证我的连接,但我从未发现它关闭。或者,您可以尝试 8.8.4.4,即 Google 辅助 DNS。

  • @JohannesPille Ping 域名需要一个正常工作的 DNS 服务器。因此,如果 DNS 请求失败,它可能会失败,这并不意味着您的互联网连接实际上已关闭。 (38认同)
  • @JohannesPille 您可以将主 DNS 覆盖为 8.8.8.8 而不是 DCHP 默认值 (6认同)
  • @JohannesPille `ping` 不接受 TLD。它也不接受域名。正是这样,大多数域名也是主机名并解析为 IP 地址。所以人们可以输入`http://example.com`而不是`http://www.example.com`,在浏览器如此聪明之前,如果它在第一个不起作用,则在主机名前加上`www.`地方。(如果您不相信我,请尝试“ping Army.mil”。) (6认同)
  • `ping` 也接受 TLD。因此,`ping google.com` 应该可以解决问题,以防您不想记住四重八。 (3认同)
  • 如果您的权威名称服务器宕机,您所在区域的网络将没有多大用处,是吗? (3认同)
  • Google 花了多少钱才能获得 8.8.8.8。谁拥有 1.1.1.1 :)? (2认同)

Mar*_*wul 39

你可以做微软所做的:检查

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以通过强制门户。

  • 为什么这不是更多赞成?少数真正好的方法之一,尤其是对于特定问题。如果您的 ISP 将您的流量重定向到警告页面,检查这样的答案是为数不多的可靠选项之一! (7认同)

LSe*_*rni 14

具体案例

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

通过将该IP 用作“check-alive”主机(在重复测试以确保它修复后),我可以检测 ISP 异常,而不会在 ADSL 正常的情况下出现误报,但 ISP 路由有问题.

当然,我可以使用8.8.8.8的目的,理由是如果我不能达到谷歌的基础设施,我不关心的原因,我还不如与备份路由器尝试。

一般情况

“互联网可用”比简单的“8.8.8.8(或其他IP)是否可达”复杂得多。

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

完整的诊断必须在您的 PC 附近开始。

  • 查询本地网络配置并检索网关和 DNS 服务器。
  • ping 网关。它应该是可达的。如果没有,那就是本地问题。
  • 运行一个带有短TTL的traceroute(实际上,像hping提供的tcptraceroute更好)一个可靠的外部地址,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
Run Code Online (Sandbox Code Playgroud)

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

$ host randomasdfdsasdqwerty987667.godaddy.com
randomasdfdsasdqwerty987667.godaddy.com has address 97.74.104.201
Run Code Online (Sandbox Code Playgroud)

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

$ host randomasdfdsasdqwerty987667.godaddy.com
captiveportal.homenet has address 192.168.4.200
Run Code Online (Sandbox Code Playgroud)

或 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
Run Code Online (Sandbox Code Playgroud)

或诸如Down Detector 之类的网站将让我了解“互联网天气”。

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

                Google.com is not reachable

                STORM ALERT: 12 out of 14 sites are unreachable!
Run Code Online (Sandbox Code Playgroud)

就像上周五在意大利发生的那样

  • 是的,但是您应该*在*之后*您已经确认问题确实是基于 DNS 的。还存在其他类型的问题,它们很可能会在破坏其他内容的同时完好无损地保留到 8.8.8.8(或 ICMP 协议)的路由。相反,无法 ping 8.8.8.8 可能*不*表示根本没有路由或 DNS 问题。 (2认同)

Kin*_*tus 6

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

我会写一个函数来 ping 一个地址一次,如果失败转移到另一个(比如,三个 IP),当你得到几个肯定的答复时,该函数应该通知你的应用程序/脚本互联网可用,并且继续。