无法登录AWS EC2实例问题排查及复用咨询
AWS EC2 Ubuntu 20.04实例宕机无法SSH的问题排查与解决
一、可能的宕机原因
- 资源耗尽或磁盘满:Laravel应用、PHP-FPM、Nginx等进程占用过多CPU/内存,触发系统OOM Killer杀死核心进程;或者日志、缓存文件填满磁盘,导致系统无法读写关键文件。
- 软件/内核故障:系统更新、Laravel依赖包更新引发内核panic,或是sshd(SSH服务)配置损坏,无法正常启动。
- 网络配置异常:安全组误关闭22端口、弹性IP解绑、子网路由配置错误,导致外部无法连接;也可能是系统内部网络服务故障。
- AWS底层硬件问题:实例所在物理机出现硬件故障,导致实例无法正常启动,部分场景下可通过控制台迁移实例解决。
二、复用原实例的操作步骤
因为无法SSH登录,只能通过EBS磁盘挂载的方式救援:
- 分离并挂载原实例磁盘到新实例
- 先停止故障实例,在EC2控制台找到该实例对应的根EBS卷,点击「分离卷」。
- 找到你新建的正常实例,点击「附加卷」,选择刚才分离的EBS卷,挂载点选非根卷位置(比如
/dev/sdf)。 - 登录新实例,执行命令挂载磁盘:
sudo mkdir /mnt/recovery sudo mount /dev/xvdf1 /mnt/recovery # 设备名可能需调整,可通过lsblk查看实际名称 - 此时可直接访问原实例的所有数据,备份Laravel代码、数据库文件(比如
/mnt/recovery/var/lib/mysql)、配置文件等。
- 排查并修复故障(可选)
- 查看原实例日志找问题:
sudo cat /mnt/recovery/var/log/syslog sudo cat /mnt/recovery/var/log/auth.log # 查看SSH相关错误 - 检查磁盘空间:
df -h /mnt/recovery,如果是磁盘满了,清理冗余日志或无用文件后,可尝试把磁盘挂回原实例重启。
- 查看原实例日志找问题:
- 恢复原实例
- 修复完成后,先卸载挂载的磁盘:
sudo umount /mnt/recovery,然后在控制台分离该卷,重新附加到原实例的根卷位置(通常是/dev/sda1),启动原实例尝试登录。
- 修复完成后,先卸载挂载的磁盘:
三、无付费支持时的AWS求助方式
- AWS re:Post社区:在AWS官方社区的EC2板块发帖,描述清楚实例状态、故障现象,会有AWS官方人员和资深用户免费提供解决方案。
- AWS官方文档:直接搜索「AWS EC2无法SSH登录」「EC2实例无法启动」,文档里有分步排查的详细指南,覆盖大部分常见问题。
- 免费支持案例:如果是AWS自身硬件故障、服务异常等问题,可在AWS支持控制台提交「服务健康」或「账户相关」的免费案例,AWS会进行响应处理。
内容的提问来源于stack exchange,提问作者Angom
相关产品推荐
相关产品推荐

