无法连接AWS EC2实例提示Connection refused故障求助
故障排查处理步骤
1 基础状态核对
- 登录AWS EC2控制台,确认实例运行状态为
running,系统状态检查和实例状态检查两项均为通过。如果状态检查失败,先执行停止实例后再启动(冷启动,非重启操作,未绑定弹性公网IP的实例公网地址会变更,需要使用新地址连接)。 - 核对你当前使用的实例公网IP/公网DNS和控制台显示的地址完全一致,避免因为实例重启导致公网地址变更,连接到错误的地址。
2 排查SSH服务异常(大概率为scp操作误修改配置/权限导致)
可以通过EC2 Instance Connect登录的情况
Amazon Linux 2/2023默认支持EC2 Instance Connect,直接在控制台实例页面点击「连接」选择该方式即可登录:
- 执行
systemctl status sshd查看sshd服务状态,如果服务未运行,执行systemctl start sshd启动服务,执行systemctl enable sshd设置开机自启。 - 执行
sshd -t校验sshd配置合法性,如果返回配置错误,修正/etc/ssh/sshd_config中的错误配置后执行systemctl restart sshd重启服务。 - 检查权限配置:如果你scp传输的文件包含
.ssh目录相关内容,执行chmod 700 ~/.ssh && chmod 600 ~/.ssh/*修复权限,sshd对ssh目录权限有严格要求,权限错误会直接拒绝服务。 - 检查实例内部防火墙:执行
iptables -L -n确认22端口没有被拦截,执行firewall-cmd --list-all确认firewalld放行了22端口TCP流量。
无法通过EC2 Instance Connect登录的情况
通过用户数据注入修复脚本自动修复:
- 先停止目标实例
- 右键实例选择「实例设置」→「编辑用户数据」,粘贴以下内容:
Content-Type: text/cloud-config; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="cloud-config.txt" #cloud-config cloud_final_modules: - [scripts-user, always] runcmd: - chmod 700 /home/ec2-user/.ssh - chmod 600 /home/ec2-user/.ssh/* - systemctl restart sshd - iptables -F - firewall-cmd --add-port=22/tcp --permanent - firewall-cmd --reload
- 保存后启动实例,等待2~3分钟后再尝试SSH连接。
3 网络访问规则核对
- 确认实例关联的安全组入站规则,放行你本地公网IP的22端口TCP流量,避免误将源地址设为私有IP或者其他错误地址。
- 检查实例关联的网络ACL配置,默认网络ACL全端口放通,如果是自定义网络ACL,需要确认入站规则放行22端口TCP流量、出站规则放行1024~65535端口的响应流量。
4 磁盘满额排查
如果实例根分区磁盘使用率100%,sshd服务无法正常读写临时文件也会返回连接拒绝:
- 查看EC2控制台实例「监控」选项卡的磁盘使用率指标,如果使用率接近100%,可以先扩容根EBS卷,或者将实例根卷卸载后挂载到其他正常运行的EC2实例上清理冗余文件。
内容的提问来源于stack exchange,提问作者user7400738
相关产品推荐
相关产品推荐

