Networking

無法ping通遠端伺服器;如何調試本地網路配置錯誤與我的 IP 被阻止?

  • January 27, 2016

我在 104.143.14.103 管理一個 KVM VPS,由於某種原因無法訪問http://pecl.php.net

當我ping輸入 PECL 伺服器的 IP 地址(104.236.228.160)時,確保它不是 DNS 問題,並且每次我得到Destination Host Unreachable.

如何調試根本原因是我的伺服器配置錯誤,還是目標伺服器拒絕 ping?

我從我管理的各種其他伺服器中獲取 PECL 沒有任何問題ping,所以我知道 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 ~]$

我檢查了多個黑名單站點,只是為了確保我沒有繼承錯誤的 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 ~]$

現在問題很明顯了。

您的網路介面設置了錯誤的前綴。

它設置為 /8(或舊的網路遮罩表示法,255.0.0.0),它告訴您的作業系統從 104.0.0.0 到 104.255.255.255(包括在內)的每個地址都與您的 VPS 在同一個 LAN 上。

顯然情況並非如此。這個範圍的大部分被細分為分佈在美洲各地的非常小的網路。

因此,您的電腦不知道它是用來路由數據包的,並嘗試聯繫同一 LAN 上任何以 104. 開頭的地址,但無法找到該地址。

要解決此問題,您需要為正確的網路遮罩或 CIDR 範圍重新配置網路。您可以從您的 VPS 提供商處獲取此資訊。

引用自:https://serverfault.com/questions/752021