笔者的一个Vultr VPS曾经遇到过这种情况:ssh连接不上。当初的第一反应是ip被封了?但是可以ping通啊,而且root密码肯定正确的,那是什么原因呢?
经过一番研究,发现问题出在端口上,原来是端口被封了。
ping和SSH的区别
ping和SSH走的是不同的协议:ping 走的是 ICMP,SSH 走的是 TCP。ping 不通是因为 ICMP 报文被拦截了。IP 能 ping通但SSH连接不上是因为 ICMP 报文是放行的,但是 TCP 报文都被拦截了,所以在检测IP时,表面上IP很正常能ping 通,但是端口 TCP 已经被封。
如何检查端口被封
其实检查VPS端口被封的方法很简单,站长工具:http://tool.chinaz.com/port/,按照下图标注进行检测:

输入需要检测的IP地址以及端口,点击开始扫描进行端口检测,笔者随机输入IP检查,如图:

如果端口被封,在端口后面会显示红字“关闭”字样。
端口被封了怎么办
一旦发现VPS的端口被封,第一反应是更换SSH端口号,但是事实告诉我更换端口号并不能解决这个问题,更改端口仍然是连接不上SSH。
所以最好的解决办法是销毁vps(如何删除Vultr VPS?),重新开一台,由于Vultr是按使用时间计费的(关于vultr收费模式,可以查看这里:vultr收费方式是怎么样的?vultr是怎么计费的?vultr扣费模式解析),所以删除VPS重新开一台并不会损失多少。