问题描述
由于原服务器将要到期,因此趁着阿里云搞促销活动重新购买了一台ECS服务器,但是在初始化并启动后却无法通过ssh连接,执行ssh命令后,命令行一直卡着没有反应,也没有任何的报错信息,就是一直卡着没有反应,什么反馈信息也得不到,这是第一次碰到这种问题,买过好多次阿里云ECS,还是第一次碰到这种无法使用ssh连接的问题。
查找原因
首先是想到了如下几个问题:
- 本地网络问题
- ECS网络问题
- sshd服务是否打开
- 防火墙是否打开
- 端口是否打开
之后开始一一验证:
本地网络一切正常,这个问题不用多说。
ECS的问题验证则有点麻烦,因为根本无法连接进去,只能通过阿里云的ECS远程连接进入ECS来定位一下问题,但是这个远程连接很卡,所以用起来很烦。
ECS网络是否通畅验证
通过curl命令获取百度首页:
curl 'http:www.baidu.com'
结果如下:
可以获取百度的页面代码,说明网络没问题,但是这个操作界面真的很丑(无奈脸.png)。
sshd服务是否打开
执行命令查看sshd服务状态:
service sshd status
结果如下:
sshd服务正常运行。
防火墙是否开启
执行命令查看防火墙状态:
service iptables status
结果如下:
防火墙正常开启,处于工作状态。
接下来查看防火墙是否将设置的ssh端口添加到规则中:
iptables -L -n | grep 端口号
可以看到所设置的端口已被添加到iptables防火墙规则中。
端口是否正常打开
使用netstat命令查看端口状况:
netstat -an |grep 端口号
结果如下:
设置的端口正常被监听。
我并没有使用默认的ssh端口22,而是重新设置了一个端口值,用以减少sshd端口被黑客恶意扫描的次数。
工单询问
在上面的网络验证、防火墙验证、端口验证几个步骤验证了一遍,且全部确认无误后,再次通过远程连接,让人崩溃的是控制台依然没有任何反应,无法连接。
没的办法,因为没有任何报错信息,只能再次去验证上述几个问题,反复确认后更崩溃的事情来了,重复的验证了很多次后都没有发现问题,服务期的设置和网络一切正常,本地网络也正常,命令也没有错,但是依然无法通过ssh命令连接服务器。
整个过程花了些时间,在一一验证后得出了一个结论,本地和服务期两边的设置都没有问题,那么到底是哪里出了问题呢?最后实在是没得办法了,只能选择发一个阿里云工单去询问解决方案,整个过程和对方讨论了之后,告诉我需要配置一下安全组,于是赶紧到控制台找到配置的页面,将端口规则添加之后果然可以正常连接了。
页面路径如下:
管理控制台->云服务器ECS->实例->管理->本实例安全组->配置规则
配置页面如下:
在这个页面将端口信息配置正确即可。
注:由于是私人服务器,因此部分信息做了涂抹。
结语
整个过程挺无奈的,各个环节都确认无误后还是没有得到正确的答案,很绝望,哈哈哈哈哈。其实阿里云的服务器我买了很多次了,我是在想,以前没有这个状况啊,为什么单单这次出现这个问题了,以往确实没有设置过安全组。
好了,既然解决了就不抱怨了,整理一下发上来,希望其他人碰到这类问题不会手足无措了。
首发于我的个人博客,感谢大家支持。
作者:13
GitHub:https://github.com/ZHENFENG13
版权声明:本文为原创文章,未经允许不得转载。