陈奇网络工作室

4步故障排除云服务器无法通过SSH远程连接

本文的内容

显示

1.

步骤1:检查CPU负载、带宽和内存使用情况。

2.

步骤2:客户端故障排除

2.1.

使用管理终端登录到实例。

2.2.

检查客户端本地网络是否异常。

2.3.

重新启动实例

3.

步骤3:检查中间网络

3.1.

网络检查

3.2.

港口检查

4.

步骤4:安全组检查

5.

推荐阅读

在运维工程师的日常工作中,经常需要登录服务器部署和维护应用,配置修改是非常常规的操作。然而,在日常的运维工作中,我们经常会遇到“滑铁卢”。当SSH无法远程连接服务器时,我们需要冷静耐心的分析错误的症结所在,以便更好的定位和排除问题。

今天老刘的博客就阿里云服务器ECS无法远程连接的问题分享了一波运维必备的故障排除方法,表示以下操作已在CentOS 6.5 64位操作系统中测试。

步骤1:检查CPU负载、带宽和内存使用情况。

确认CPU负载是否过大。

如果某段时间CPU负载过高,可能导致远程连接失败,建议您查询程序或实例资源是否无法满足现有要求。

如果没有CPU过载,继续下一步。

确认公网带宽是否不足。

无法远程连接可能是由于公网带宽不足造成的,具体排除方法如下:

登录到ECS管理控制台。

找到实例,点击管理,进入实例详细信息页面,查看网络监控数据。

检查服务器带宽是“1k”还是“0k”。如果购买实例时没有购买公网带宽,然后升级公网带宽,在没有选择更新带宽的情况下,带宽会变成“1k”。

确认内存是否不足。

用用户密码登录后,远程连接无法正常显示桌面直接退出,也没有错误信息。这种情况可能是服务器内存不足造成的,所以需要检查服务器的内存使用情况。具体操作如下:

使用控制台远程连接功能登录到Linux实例。

检查内存使用情况,并确保在处理之前内存不足。

步骤2:客户端故障排除

当客户端无法正常登录时,首先使用不同的SSH客户端基于相同的账户信息登录。如果能正常登录,则判断是客户端配置问题,需要对客户端配置或软件运行情况进行调查分析。有关如何使用SSH客户机登录到Linux实例的信息,可以参见远程连接到Linux实例。

使用管理终端登录到实例。

无论是什么原因导致实例无法远程连接,请先尝试使用阿里云提供的远程连接功能进行连接,确定实例还在响应且没有完全宕机,再根据原因进行故障排除。

记录云服务器管理控制台,点击左侧导航栏中的实例,然后点击目标实例右侧的远程连接。

当您第一次连接或忘记连接密码时,单击修改远程连接密码来修改远程连接密码。

然后通过远程连接密码连接到实例。

检查客户端本地网络是否异常。

确认是否存在用户无法本地连接到外部网络的故障。

如果存在,检查网卡驱动,如果不正常,重新安装。使用管理终端登录到实例,并检查文件/etc/hosts.deny,查看是否有截获的IP。如果有,就删除这个IP配置。

如果不存在,请继续下一步。

重新启动实例

当登录密码正确时,确认密码之前是否已重置。检查重置实例密码后实例是否没有重新启动。如果有实例密码修改记录,但没有重启实例记录,请参考以下操作步骤重启实例:

登录到ECS管理控制台,并单击左侧导航栏中的实例。

选择页面顶部的相应区域,单击目标实例右侧的更多实例状态以重新启动,然后单击确定。

步骤3:检查中间网络

中间网络包括网络督察

在其他网络环境下对比测试不同网段或不同运营商的电脑连接,判断是本地网络问题还是服务器端问题。如果是本地网络问题或运营商问题,请联系当地IT人员或运营商解决。如果网卡驱动不正常,重新安装。排除本地网络故障后,执行下一次检查。

在客户端上使用ping命令测试与实例的网络连接。

网络异常时,请参考网络异常时如何抢包进行故障排除。

当ping丢包或ping失败时,请参考ping命令丢包或ping失败时的链路测试方法进行故障排除。

如果出现间歇性丢包,ECS实例的网络始终处于不稳定状态,请参考ping命令测试ECS实例的IP地址间歇性丢包来解决。

当系统内核没有被禁止ping时,使用PING命令测试ECS服务器,发现网络被阻塞。请参考Linux系统ECS没有禁止ping的解决方案。

港口检查

网络检查正常后,进一步检查端口是否正常。

1.使用管理终端登录到实例,执行以下命令,并编辑SSH配置文件。

vi /etc/ssh/sshd_config

2.找到“#port 22”所在的行,检查默认端口22是否被修改,前面的“#”是否被删除。如果没有,可以删除前面的“#”,然后把22改成另一个端口,然后保存退出。

描述:可用于服务监控的端口范围是0到65535。错误配置监控端口将导致远程桌面服务监控失败。

3.执行以下命令来重新启动SSH服务。

/etc/init.d/sshd重新启动

描述:您还可以执行服务sshd restart命令来重新启动SSH服务。

4.使用Python自己的Web服务器创建一个临时监听端口进行测试。

python-m simple http server[$ Port]

5.如果修改后的端口号未在ECS安全组规则中发布,您需要将修改后的端口号添加到ECS安全组规则中。

描述:ECS的安全组规则中默认允许22个端口。修改远程桌面的端口后,您需要在安全组规则中释放修改后的端口号。

6.通过上一步得到的端口,参照下面的命令,进行端口测试,判断端口是否正常。

telnet [$IP] [$Port]

描述:

[$ IP]是指Linux实例的IP地址。

[$ port]是指Linux实例的SSH端口号。

系统显示如下。例如,执行telnet 192.168.0.1 22命令。正常情况下,系统会返回服务器中SSH的软件版本号。

步骤4:安全组检查

检查安全组配置,查看是否允许远程连接的端口。

请参阅查询安全组规则以查看安全组规则。如果没有配置远程连接端口,请参见在Linux实例中启用SSH服务后设置相应的安全组策略配置。

确认是否存在无法ping通的ECS实例,并且在排除Iptables和NIC IP配置问题并回滚系统后仍然无法ping通。可能是ECS实例安全组的默认公共网络规则已被删除,因此需要重新配置ECS实例安全组的公共网络规则。如果不存在,请继续下一步。

西部数码代理(chenqinet.cn)是工信部批准的正规老牌云服务商,拥有ISP、云牌照、IDC、CDN全业务资质。自成立以来,二十多年来一直专注于域名注册,虚拟主机,云服务器,企业邮箱,企业网站建立等互联网基础服务!

公司开发的云计算平台以便捷、高效、高性价比、意想不到的售后优势占领市场,跻身国内前三的接入服务商,为国内超过50万家网站提供高速稳定的托管服务!先后荣获中国高新技术企业、中国优秀云计算服务商、中国十大IDC企业、中国最受欢迎云服务商等称号!

目前西部数码代理高性能云服务器在售,最低仅售48元!

http://zhuji.chenqinet.cn/cloudhost/

后台-系统设置-扩展变量-手机广告位-内容页底部广告位3