我在104.143.14.103pipe理KVM VPS,出于某种原因无法访问http://pecl.php.net 。
当我ping PECL服务器(104.236.228.160)的IP地址,以确保它不是一个DNS问题,每次我得到Destination Host Unreachable 。
如何debugging根本原因是我的服务器configuration错误,还是被目标服务器拒绝?
我从我pipe理的各种其他服务器ping PECL没有问题,所以我知道PECL不会阻止所有的ping。
我也没有任何问题,我尝试从我的VPS ping任何其他网站,问题是完全与PECL服务器。
我使用了我的VPS主机的镜头 ( http://lg.las1.ultravps.net/ ),并且在PECL上没有任何问题。 我还向主机提交了支持凭证,他们login到该节点的pipe理程序,并表示可以成功ping PECL。
我从另一台服务器向PECL服务器运行了traceroute以查找倒数第二跳的IP地址。 我可以成功地从我的VPS ping IP(162.243.188.222)。
当我从VPS运行traceroute ,我得到:
[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 ~]$
我检查了多个黑名单网站,只是为了确保我没有inheritance一个错误的IP地址…没有列出我的IP。 我也没有经常打PECL,这个问题已经发生好几天了,所以如果我打了限速,我会很惊讶的。
我还能做些什么来debuggingPECL是否阻止了我的IP地址,或者我的VPS上有什么configuration错误?
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 ~]$
现在的问题是显而易见的。
您的networking接口具有错误的前缀集。
它被设置为/ 8(或者在旧的networking掩码符号255.0.0.0中),它告诉你的操作系统104.0.0.0到104.255.255.255中的每个地址与你的VPS在同一个LAN上。
这显然不是这种情况。 这个范围的大部分被细分成遍布美洲的非常小的networking。
因此,您的计算机不知道它是为了路由数据包,并尝试联系任何以104开头的地址,在同一个LAN上找不到。
要解决此问题,您需要重新configuration您的networking以获得正确的networking掩码或CIDR范围。 您可以从您的VPS提供商获取这些信息。
既然你正在testing一个公开的网站,那么对于每个人或者只是我的 web服务来说,恰当的名字是非常有帮助的。 只要把网站的地址放在他们的networking表格中,他们就可以从几个地方ping通地址。 我还没有遇到一个服务器已经启动的情况,但是即使在一些设置的非洲和中东地区,也无法实现。
您也可以在CLI中使用它,只需grep输出span以便于阅读:
$ curl -s http://www.downforeveryoneorjustme.com/serverfault.com | grep span It's just you. <a href="http://serverfault.com" class="domain">http://serverfault.com</a></span> is up.