"我这边能用,我在俄罗斯的用户却用不了"是我们最常见到的网络谜题之一。看不见的问题就没法修,所以第一步是从这些国家内部看看你的服务器。两个免费服务就能让这变成两分钟的检查。
下面的示例用 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 的套餐。
评论
暂无评论。来做第一个吧。