在运维工程师的日常工作中,经常需要登录到服务器上对应用部署和维护,配置修改是很常规操作。但是在日常运维工作中,经常也会遭遇“滑铁卢”,当出现无法远程连接服务器的时候,我们需要沉着冷静,耐心分析报错的症结,方能更好的定位和排除问题。
今天百晓生就阿里云服务器ECS无法远程连接的问题,分享一波运维必备的问题排查方法,认同小编的童鞋,文末【点赞+再看】哦~
说明:以下操作在CentOS 6.5 64位操作系统中进行过测试
确认是否存在CPU负载过高的情况
确认公网带宽是否不足
无法远程连接可能是公网带宽不足导致的,具体排查方法如下:
确认内存是否不足
远程连接输入用户密码登录后,不能正常显示桌面直接退出,也没有错误信息。这种情况可能是服务器内存不足导致的,需要查看一下服务器的内存使用情况。具体操作如下:
客户端无法正常登录时,先使用不同的SSH客户端基于相同账户信息进行登录测试。如果能正常登录,则判断是客户端配置问题,需要对客户端配置或软件运行情况做排查分析。关于如何使用SSH客户端登录Linux实例,您可以参见远程连接Linux实例。
步骤一:使用管理终端登录实例
无论何种原因导致无法远程连接实例,请先尝试用阿里云提供的远程连接功能进行连接,确认实例还有响应,没有完全宕机,然后再按原因分类进行故障排查。
步骤二:检查客户端本地网络是否异常
确认是否存在用户本地无法连接外网的故障。
步骤三:重启实例
在确保登录密码正确的情况下,确认之前是否曾重置过密码。检查重置实例密码后是否未重启实例,如果存在实例密码修改记录,但无重启实例记录,则参考以下操作步骤重启实例:
中间网络包括网络检查和端口检查。
网络检查
无法正常远程连接Linux实例时,需要先检查网络是否正常。
1)网络异常时,请参见网络异常时如何抓取数据包进行排查。
2)当出现ping丢包或ping不通时,请参见使用ping命令丢包或不通时的链路测试方法进行排查。
3)如果出现间歇性丢包,ECS实例的网络一直处于不稳定状态时,请参见使用ping命令测试ECS实例的IP地址间歇性丢包进行解决。
4)系统内核没有禁ping的情况下,使用ping命令测试ECS服务器,发现网络不通,请参见Linux系统的ECS中没有禁PING却PING不通的解决方法。
网络检查正常后,进一步检查端口是否正常。
1. 使用管理终端登录实例,执行如下命令,编辑SSH配置文件。
vi /etc/ssh/sshd_config2. 找到“#port 22”所在行,检查默认端口22是否被修改,且前面的“#”是否删除,如果没有删除,可以把前面的“#”删除,然后将22改为其它的端口,再保存退出即可。
说明:服务监听能使用的端口范围为0到65535,错误配置监听端口会导致远程桌面服务监听失败
3. 执行如下命令,重启SSH服务。
/etc/init.d/sshd restart说明:也可执行service sshd restart命令,重启SSH服务。
4. 使用Python自带的Web服务器创建临时的监听端口进行测试。
python -m SimpleHTTPServer [$Port]
5. 如果ECS安全组规则中未放行修改后的端口号,需要将修改后的端口号添加到ECS安全组规则中。
说明:ECS的安全组规则中默认放行22端口。修改了远程桌面的端口后,需要在安全组规则中放行修改后的端口号。
6. 通过上一步获取的端口,参考如下命令,进行端口测试,判断端口是否正常。
telnet [$IP] [$Port]
说明:
– [$IP]指Linux实例的IP地址。
– [$Port]指Linux实例的SSH端口号。
系统显示类似如下,例如执行telnet 192.168.0.1 22命令,正常情况下,系统会返回服务端中SSH的软件版本号。
检查安全组配置,是否允许远程连接的端口。