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

Jef*_*man 3 networking ip ping

我在 104.143.14.103 管理一个 KVM VPS,由于某种原因无法访问http://pecl.php.net

当我ping查看 PECL 服务器的 IP 地址 (104.236.228.160) 时,要确保它不是 DNS 问题,并且每次我得到Destination Host Unreachable.

如何调试根本原因是我的服务器配置错误还是目标服务器拒绝了 ping?

ping从我管理的各种其他服务器上使用 PECL没有问题,所以我知道 PECL 不会阻止所有 ping。

ping从 VPS 尝试的任何其他站点也没有问题,问题仅在于 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 ~]$
Run Code Online (Sandbox Code Playgroud)

我检查了多个黑名单站点,只是为了确保我没有继承错误的 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
Run Code Online (Sandbox Code Playgroud)

的输出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 ~]$
Run Code Online (Sandbox Code Playgroud)

Mic*_*ton 10

现在问题很明显了。

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

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

显然情况并非如此。这个范围的大部分被细分为分散在美洲各地的非常小的网络。

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

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