「我這邊可以用,但我在俄羅斯的使用者不行」是我們最常遇到的網路謎題之一。看不到的問題就沒辦法修,所以第一步是從這些國家內部看看您的伺服器。兩個免費服務就能讓這件事變成兩分鐘的檢查。
以下範例使用 203.0.113.10 作為伺服器位址,請換成您自己的。
1. 在瀏覽器快速檢查:check-host.net
開啟 check-host.net,輸入伺服器 IP,先執行 Ping,再用您的服務所監聽的連接埠執行 TCP port(例如 203.0.113.10:443)。結果會列出所有測試點;請看俄羅斯和伊朗的部分。check-host.net 在莫斯科和伊朗多個城市都有測試點。
同樣的檢查也能在終端機進行。從一個俄羅斯測試點和一個伊朗測試點發出 ping:
curl -s -H 'Accept: application/json' \
'https://check-host.net/check-ping?host=203.0.113.10&node=ru1.node.check-host.net&node=ir5.node.check-host.net'
回應裡會有一個 request_id。等幾秒鐘,再取回結果:
curl -s -H 'Accept: application/json' 'https://check-host.net/check-result/REQUEST_ID'
進行 TCP 測試時,把 check-ping 換成 check-tcp,並在主機後面加上連接埠:host=203.0.113.10:443。測試點名稱偶爾會變動;最新清單在 https://check-host.net/nodes/hosts。
2. 第二意見:Globalping
Globalping 從世界各地志工提供的測試點執行檢測,包括俄羅斯和伊朗。在瀏覽器中選擇測試類型、輸入 IP,並把國家填為位置即可。在終端機中:
curl -s -X POST https://api.globalping.io/v1/measurements \
-H 'content-type: application/json' \
-d '{"type":"ping","target":"203.0.113.10","locations":[{"country":"RU"},{"country":"IR"}],"limit":2}'
回應裡有一個 id。幾秒後:
curl -s https://api.globalping.io/v1/measurements/MEASUREMENT_ID
每筆結果都會顯示測試點所在的國家和城市,以及目標有沒有回應。
3. 如何解讀結果
| 您看到的情況 | 通常代表 |
|---|---|
| ping 失敗,但到您連接埠的 TCP 連得上 | ICMP 在某處被過濾。伺服器是可連線的,沒有需要修的地方。 |
| 同一國家的多個測試點 ping 和 TCP 都失敗,其他地方都正常 | 這個位址很可能在該國被過濾。 |
| 在該國境內 TCP 連得上,但 VPN 連不上 | 被封鎖的是協定,不是您的 IP。換位址也沒有用。 |
| 所有地方都失敗,包括歐洲 | 問題出在您的伺服器,不是國家:服務沒在執行,或防火牆擋住了連接埠。 |
單一測試點失敗說明不了什麼;家用網路和行動網路都有各自的問題。請相信同一國家多個測試點反覆出現的模式。
4. 怎麼處理
如果 IP 被過濾。 解決方法是換一個位址。在獨立 IP 方案上,您可以加購第二個 IPv4,或遷移到新伺服器並取得新位址。兩種做法和價格都寫在更換 IP 位址。把使用者移過去之前,請用同樣的方法檢查新位址。
如果協定被封鎖。 WireGuard 和 OpenVPN 的交握很容易被深度封包檢測(DPI)辨識。VLESS + Reality 看起來就像一般的 HTTPS,在 VPN 協定會被過濾的地方穩定得多。
如果從哪裡都連不上。 先檢查伺服器:服務有在執行嗎?有在監聽連接埠嗎?防火牆有放行嗎?VPN 檢查清單會一步步帶您檢查。
在 NAT 方案上,請測試您的專屬連接埠(控制台中顯示、類似 20xxx 的連接埠)。這是從外部能到達伺服器的唯一連接埠;若要在 443 或 VPN 連接埠接受連線,需要有獨立 IPv4 的方案。
評論
目前還沒有評論。歡迎成為第一位。