文章插图
文章插图
在运维工程师的日常工作中,经常需要登录到服务器上对应用部署和维护,配置修改是很常规操作 。但是在日常运维工作中,经常也会遭遇“滑铁卢”,当出现无法远程连接服务器的时候,我们需要沉着冷静,耐心分析报错的症结,方能更好的定位和排除问题 。
今天百晓生就阿里云服务器ECS无法远程连接的问题,分享一波运维必备的问题排查方法,认同小编的童鞋,文末【点赞+再看】哦~
说明:以下操作在CentOS 6.5 64位操作系统中进行过测试
检查CPU负载、带宽及内存使用情况
确认是否存在CPU负载过高的情况
如果在某个时间段CPU负载过高,可能导致远程连接失败,建议您查询程序或者实例资源是否不满足现有要求 。如果不存在CPU负载过高的情况,则继续下一步检查 。
确认公网带宽是否不足
无法远程连接可能是公网带宽不足导致的,具体排查方法如下:
登录ECS管理控制台 。找到该实例,单击管理进入实例详情页面,查看网络监控数据 。检查服务器带宽是否为“1k”或“0k” 。如果购买实例时没有购买公网带宽,后来升级了公网带宽,续费的时候没有选择续费带宽,带宽就会变成“1k” 。
确认内存是否不足
远程连接输入用户密码登录后,不能正常显示桌面直接退出,也没有错误信息 。这种情况可能是服务器内存不足导致的,需要查看一下服务器的内存使用情况 。具体操作如下:
使用控制台远程连接功能登录到Linux实例 。查看内存使用情况,确认内存不足后,再进行处理 。客户端排查
客户端无法正常登录时,先使用不同的SSH客户端基于相同账户信息进行登录测试 。如果能正常登录,则判断是客户端配置问题,需要对客户端配置或软件运行情况做排查分析 。关于如何使用SSH客户端登录Linux实例,您可以参见远程连接Linux实例 。
步骤一:使用管理终端登录实例
无论何种原因导致无法远程连接实例,请先尝试用阿里云提供的远程连接功能进行连接,确认实例还有响应,没有完全宕机,然后再按原因分类进行故障排查 。
录云服务器管理控制台,单击左侧导航栏中的实例,然后在目标实例右侧单击远程连接 。在首次连接或忘记连接密码时,单击修改远程连接密码,修改远程连接的密码 。然后通过远程连接密码连接实例 。
步骤二:检查客户端本地网络是否异常
确认是否存在用户本地无法连接外网的故障 。
如果存在,则检查网卡驱动,如果存在异常,则重新安装 。使用管理终端登录实例,查看/etc/hosts.deny文件,查看是否存在拦截IP,如果存在则删除此IP配置即可 。如果不存在,则继续下一步检查 。
步骤三:重启实例
在确保登录密码正确的情况下,确认之前是否曾重置过密码 。检查重置实例密码后是否未重启实例,如果存在实例密码修改记录,但无重启实例记录,则参考以下操作步骤重启实例:
登录ECS管理控制台,单击左侧导航栏中的实例 。在页面顶部的选择对应的地域,目标实例右侧单击更多>实例状态>重启,再单击确定即可 。中间网络
中间网络包括网络检查和端口检查 。
网络检查
无法正常远程连接Linux实例时,需要先检查网络是否正常 。
用其他网络环境中,不同网段或不同运营商的电脑连接对比测试,判断是本地网络问题还是服务器端的问题 。如果是本地网络问题或运营商问题,请联系本地IT人员或运营商解决 。如果是网卡驱动存在异常,则重新安装 。排除本地网络故障后进行下一步检查 。在客户端使用ping命令测试与实例的网络连通性 。
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的软件版本号 。
安全组检查
检查安全组配置,是否允许远程连接的端口 。
参见查询安全组规则,查看安全组规则 。如果远程连接端口没有进行配置,则参见Linux实例启用SSH服务后设置对应的安全组策略配置 。确认是否存在无法ping通ECS实例,在排除Iptables和网卡IP配置问题且回滚系统后,仍然无法ping通 。可能是ECS实例安全组默认的公网规则被删除,则需要重新配置ECS实例的安全组公网规则 。如果不存在,则继续下一步骤检查 。
- navicat 数据库连接 navicate怎么连接数据库
- 木马是远程控制软件吗 远程控制木马与远程控制软件的区别
- 连接MySQL失败 mysql连接不成功怎么办
- 怎么连接plsql plsql可以连接哪些数据库
- cad怎么把断线连接 cad怎么切断线
- 远程时出现内部错误是什么意思原因 远程控制提示出现内部错误
- 如何设置主机与虚拟机网络连接 虚拟机和主机联网
- 怎样与plc连接 plc与plc之间如何通讯
- 远程控制出现了内部错误 远程访问出现内部错误
- 远程培训平台 远程培训怎么操作