最近老王有一台 Linode 国外 VPS 突然无法访问国内网站了,具体表现为 ping 国内 IP 全部超时,用 curl 访问国内网站也是 timed out,但是 ping 国外 IP 或者访问国外网站也全部正常,本文老王分享下出现这个问题的原因(基本都是这个原因)。
一、问题描述
以放在腾讯云的老王博客(laowangblog.com)为例,直接 ping 域名能得到正确的 IP 解析地址,但是 ping 的结果是 100% packet loss(100% 丢包):
在这台国外 VPS 上用 curl 命令尝试访问老王博客,返回了 Connection timed out 的错误:
二、问题原因
一开始老王对这个问题也是莫名其妙,以为是 DNS 服务器的问题,但是修改成了谷歌 DNS 8.8.8.8 也没效果,后来想了下,ping 域名能得到正确的 IP 解析地址,说明不是 DNS 服务器的问题,而是直接无法访问这个 IP。
随后用 IP检测工具测了下这个国外 VPS,发现这台国外 VPS 被封了,国内无法 ping 通,TCP 也无法访问:
之后询问了有 VPS 被封经历的朋友,并在网络上搜了相关评论,才发现封国外 VPS 是双向的,国内无法访问被封了的国外 VPS,被封了的国外 VPS 也无法访问国内的 IP 或者网站。老王随后换了 IP,果然全部恢复正常。
如果你也发现了自己的国外 VPS 服务器无法访问国内网站,95% 的原因应该也是因为国外 VPS 被封了。