无法 ping 远程服务器;如何调试本地网络配置错误以及我的 IP 被阻止?

无法 ping 远程服务器;如何调试本地网络配置错误以及我的 IP 被阻止?

我管理着一个位于 104.143.14.103 的 KVM VPS,但由于某种原因无法连接http://pecl.php.net

当我输入pingPECL 服务器的 IP 地址 (104.236.228.160) 以确保它不是 DNS 问题时,每次我都会得到Destination Host Unreachable

我该如何调试根本原因是否是我的服务器配置错误,或者 ping 被目标服务器拒绝?

我从我管理的其他各种服务器运行 PECL 都没有问题ping,所以我知道 PECL 并没有阻止所有的 ping。

我从我的 VPS 尝试访问任何其他网站也没有遇到任何问题ping,问题仅仅出在 PECL 服务器上。

我使用了我的 VPS 主机的镜像(http://lg.las1.ultravps.net/),并且它在 ping PECL 时没有任何问题。我还向主机提交了支持凭单,他们登录了此节点的虚拟机管理程序并表示他们可以成功 ping PECL。

我从另一台服务器运行traceroute到 PECL 服务器,以查找倒数第二跳的 IP 地址。我可以从我的 VPS 成功 ping 该 IP (162.243.188.222)。

当我traceroute从 VPS 运行时,我得到:

[jeffwidman@ultravps ~]$ traceroute pecl.php.net
traceroute to pecl.php.net (104.236.228.160), 30 hops max, 60 byte packets
 1  ultravps.jeffwidman.com (104.143.14.103)  3005.478 ms !H  3005.400 ms !H  3005.270 ms !H
[jeffwidman@ultravps ~]$ traceroute 104.236.228.160
traceroute to 104.236.228.160 (104.236.228.160), 30 hops max, 60 byte packets
 1  ultravps.jeffwidman.com (104.143.14.103)  3005.916 ms !H  3005.877 ms !H  3005.867 ms !H
[jeffwidman@ultravps ~]$

我检查了多个黑名单网站,只是为了确保我没有继承一个坏的 IP 地址……没有一个列出我的 IP。我也不经常使用 PECL,这个问题已经发生了好几天,所以如果我遇到了速率限制,我会非常惊讶。

我还能做什么来调试 PECL 是否阻止了我的 IP 地址或者我的 VPS 上是否存在配置错误?

输出ip route

[jeffwidman@ultravps ~]$ ip route
default via 104.143.14.1 dev eth0  proto static  metric 100
104.0.0.0/8 dev eth0  proto kernel  scope link  src 104.143.14.103  metric 100

输出ip addr

[jeffwidman@ultravps ~]$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:16:3c:d1:49:f6 brd ff:ff:ff:ff:ff:ff
    inet 104.143.14.103/8 brd 104.255.255.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::216:3cff:fed1:49f6/64 scope link
       valid_lft forever preferred_lft forever
[jeffwidman@ultravps ~]$

答案1

现在问题已经很明显了。

您的网络接口设置了错误的前缀。

它被设置为 /8(或在旧的网络掩码表示法中为 255.0.0.0),这告诉您的操作系统 104.0.0.0 到 104.255.255.255 中的每个地址都与您的 VPS 位于同一个 LAN 上。

显然事实并非如此。该区域的大部分被细分为遍布美洲各地的非常小的网络。

因此,您的计算机不知道它要路由数据包,并尝试联系同一 LAN 上以 104 开头的任何地址,但无法找到它。

要修复此问题,您需要重新配置网络以获得正确的网络掩码或 CIDR 范围。您可以从 VPS 提供商处获取此信息。

答案2

由于你正在针对一个公开的网站进行测试,因此恰当命名的为所有人或仅我网络服务非常有用。只需将相关网站的地址输入他们的网络表单,他们就会从几个位置 ping 该地址。我还没有遇到过服务器已启动但他们无法访问的情况,即使在一些配置不当的非洲和中东地区也是如此。

您也可以从 CLI 使用它,只需 grep 输出即可span使其更易于阅读:

$ curl -s http://www.downforeveryoneorjustme.com/serverfault.com | grep span
  It's just you.  <a href="http:&#x2F;&#x2F;serverfault.com" class="domain">http:&#x2F;&#x2F;serverfault.com</a></span> is up.

相关内容