首页  >  文章  >  运维  >  无法连接Linux实例的原因以及解决方案

无法连接Linux实例的原因以及解决方案

坏嘻嘻
坏嘻嘻原创
2018-09-28 14:07:453311浏览

本文在介绍无法连接Linux实例的原因以及解决方案的基础上,重点探讨了其具体步骤,本文内容紧凑,希望大家可以有所收获。

无法连接Linux实例

下图显示了无法连接 ECS 实例的原因分类和出现概率。若无法连接实例,建议您根据如下原因进行排查。

微信截图_20180928135109.png

首先尝试远程连接

无论何种原因导致无法远程连接实例,请先尝试用阿里云提供的远程连接功能进行连接,然后再按原因分类进行故障排查。

登录 云服务器管理控制台。

找到需要连接的实例,在找到需要连接的实例,在 操作 列,单击 远程连接。

微信截图_20180928135121.png

连接 管理终端。首次连接,需要先复制密码。

微信截图_20180928135128.png

输入密码后,连接实例 。

微信截图_20180928135146.png

若忘记密码,单击若忘记密码,单击 修改管理终端的密码,设置新密码。I/O 优化的实例,修改密码后即时生效,无需重启

微信截图_20180928135156.png

无法连接ECS实例排查思路

请根据如下各原因序逐一排查:

客户端本地网络异常 [出现概率:3%]

重置实例密码,未重启 ECS 实例 [出现概率:7%]

iptables 配置异常(Centos 6)[出现概率:10%]

安全组公网规则 [出现概率:8%]

远程访问端口配置异常 [出现概率:10%]

CPU 负载过高 [出现概率:9%]

1. 客户端本地网络异常 [出现概率:3%]

故障现象:用户无法登录外网。

可能原因:网卡驱动未开启或网卡配置有问题。

解决方法:查找 /etc/hosts.deny 看是否有拦截IP;检查网卡驱动,重新安装。

2. 重置实例密码,未重启实例 [出现概率:7%]

故障现象:有实例密码修改记录,但无重启实例记录。

可能原因:您修改了实例密码,但是未重启 ECS 实例。

解决方法:

登录云服务器管理控制台。

单击左侧导航栏中的 实例。

单击页面顶部的地域。

选择需要的实例。单击 重启。

在弹出的提示框中,选择 重启,单击 确定。

3. iptables 配置异常(Centos 6)[出现概率:10%]

前提条件:您只有在已授权可关闭 iptables 的情况下,才能做该项排查。

故障现象:SSH 无法连接,关闭 iptables 后连接恢复。

解决方法:调整 iptables 配置策略。

查看防火墙规则:

iptables -nvL –line-number

L 查看当前表的所有规则,默认查看的是 filter 表,如果要查看 NAT 表,可以加上 -t NAT 参数。

n 不对 IP 地址进行反查,加上这个参数显示速度会快很多。

v 输出详细信息,包含通过该规则的数据包数量、总字节数及相应的网络接口。

修改规则。

若之前已设置过规则策略的,将原有的 iptables 文件保存一份,避免之前设置的策略丢失。

cp -a /etc/sysconfig/iptables /etc/sysconfig/iptables.bak

清空服务器上所有的规则。

iptables -F

设置 INPUT 方向所有的请求都拒绝。如果是线上业务请勿直接操作,会导致业务直接中断。

iptables -P INPUT DROP

设置 iptables 防火墙后需放行 22 号端口,否则会导致无法远程。

iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT

指定 IP 访问22号端口。

iptables -I INPUT -s 192.168.1.1 -p tcp --dport 22 -j ACCEPT

说明: 192.168.1.1 为请求端 IP 地址。

使用 iptables -L 查看一下添加的规则是否生效。

iptables -L

微信截图_20180928140349.png

保存添加的规则。

iptables-save > /etc/sysconfig/iptables

设置后需要重启iptables。

service iptables restart 或 /etc/init.d/iptables restart

操作完成后,重启服务器进行配置验证。

systemctl reboot

完成操作后,请再进行 SSH 连接。

4. 安全组公网规则 [出现概率:8%]

故障现象:ECS 服务器无法ping通,排查iptables、网卡IP配置无误,回滚系统后仍然无法ping通。

可能原因:ECS 实例安全组默认的公网规则被删除。

解决方法:重新配置 ECS 实例的安全组公网规则,具体操作详见 ECS实例安全组默认的公网规则被删除导致无法ping通。

5. 远程访问端口配置异常 [出现概率:10%]

故障现象:SSH 远程无法连接,远程访问端口非默认端口。

可能原因:更改了远程访问端口配置,有可能防火墙未对自定义端口放开。

解决方法:客户端无法正常登录时,建议先使用不同的 SSH 客户端基于相同账户信息进行登录测试。如能正常登录,则判断是客户端配置问题,需对客户端配置做排查分析。

使用 telnet 测试现有监听端口连通性。使用 Linux 自带的 telnet 工具测试现有端口的连通性。

telnet <host> <port>
# host 是目标服务器 IP,port是待测试端口号

修改或查看Linux远程端口:

vi /etc/ssh/sshd_config

找到 #port 22 这一行,默认端口为 22,可以把前面的#删除,把 22 改为其它的端口。

重启SSH服务:

/etc/init.d/sshd restart 或 service sshd restart

创建新的监听端口测试。

可以使用 python 自带的 Web 服务器用于临时创建新的监听端口进行测试。

python -m SimpleHTTPServer <所需端口号>

说明:

您可以通过自动测试默认端口来检测远程访问端口的问题。

服务监听能使用的端口范围为 0~65535,错误配置监听端口会导致远程桌面服务监听失败。

6. CPU 负载过高 [出现概率:9%]

故障现象:CPU 负载过高导致系统无法进行远程连接。

解决方法:您无法主动监控系统内部的程序运行状态,可以借助 云监控 > 主机监控 > 进程监控 来实现。

微信截图_20180928140434.png

查看应用运行情况,排除 CPU 负载过高的原因。查看 CPU 负载问题详见 云服务器 ECS Linux 系统 CPU 占用率较高问题排查思路。

注意:在某个时间段 CPU 负载过高可能导致远程连接失败,建议您查询是否程序或者实例资源不满足现有要求。

最后尝试重启实例

若用阿里云提供的远程连接功能仍无法成功连接实例,请尝试重启实例。重启操作会使实例停止工作,从而中断业务,请谨慎执行。

注意:重启实例前,需对实例创建快照,用于数据备份或者制作镜像。创建快照的方法详见:创建快照。

在控制台重启实例。重启实例后,请再次尝试实例连接。

以上是无法连接Linux实例的原因以及解决方案的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn