我这边有一段时间遇到了一个奇怪的现象。
大概就是我和一个 vps 保持一段时间的 tcp 连接之后,突然这个服务器就无法访问了,具体表现如下:
- 从观察到无法访问的 ip 地址 A,连接服务器的 ip 地址 S,tcp 连接不通,且 ping 不通。
- 如果这时关闭试图建立 tcp 连接的程序,则立刻能 ping 通。
- 在上一条的情况下,再打开试图建立 tcp 连接的程序,仍然无法正常工作,且立刻无法 ping 通。且这两条的现象可以反复操作重现。
- 更换从另一 ip 地址 B,访问服务器 ip 地址 S,tcp 连接正常,能 ping 通,未观察到阻断现象。
- 过几个小时后,从 ip 地址 A 到 ip 地址 S 的连接恢复正常。
这个现象在我这里已经出现了一年多了,我一直拿不准这是什么导致的。
我的想法是:
- 如果这是被墙了,那么墙应该只需要阻断服务器的 ip 地址 S 即可,不应该和请求连接 S 的地址有关。
- 但实际上被阻断的是地址 A <---> 地址 S 的通信。这么说感觉不像是墙。
- 但是又不像是 qos,如果 qos 的话,为何会发生 tcp 尝试连接,ping 断了的情况呢?这个也是讲不通的。
实在想不明白,但是又很困扰。。大家是怎么看的呢?