清空路由表后如何重新连接EC2 Ubuntu实例?
如何通过AWS控制台恢复执行
sudo ip route flush table main后的EC2 Ubuntu实例连接 执行sudo ip route flush table main会清空实例的主路由表,导致实例无法与外部网络建立连接,包括SSH。你可以通过AWS控制台的以下几种方式恢复连接:
方式一:使用EC2串行控制台
- 登录AWS控制台,进入EC2服务页面,定位到目标实例。
- 在实例详情页的「监控」标签下找到「串行控制台」,点击「连接」。
- 在串行控制台窗口中按Enter激活登录提示,输入实例用户名(Ubuntu默认是
ubuntu),通过密钥或密码登录实例(如果未设置密码,可通过AWS控制台重置实例密码)。 - 登录后执行命令恢复路由:
# 手动添加默认路由,替换<网关IP>和<网卡设备名>(通常是eth0或ens5) sudo ip route add default via <网关IP> dev <网卡设备名> # 或者重启网络服务,Ubuntu 18.04+适用: sudo systemctl restart systemd-networkd # 若使用netplan,重新应用配置: sudo netplan apply - 路由恢复后,尝试重新通过SSH连接实例。
方式二:挂载根卷到临时实例修复
- 停止故障EC2实例(停止操作不会丢失根卷数据,临时卷数据会被清除)。
- 在实例详情页的「存储」标签下,找到根卷,点击「分离卷」。
- 启动同可用区的临时Ubuntu EC2实例,将分离的根卷附加到临时实例(挂载点可设为
/dev/sdf)。 - 登录临时实例,挂载该根卷:
sudo mkdir /mnt/recovery sudo mount /dev/sdf1 /mnt/recovery - 进入挂载的系统目录,确保网络配置正确:
- 检查
/mnt/recovery/etc/netplan/*.yaml文件,确认网关配置无误; - 若需要,可在
/mnt/recovery/etc/rc.local(不存在则创建)中添加开机自动恢复路由的命令:ip route add default via <网关IP> dev <网卡设备名>
- 检查
- 卸载根卷:
sudo umount /mnt/recovery,将其重新附加回原故障实例,启动原实例后尝试SSH连接。
方式三:使用EC2 Rescue for Linux工具
- 在EC2实例详情页,点击「操作」→「实例设置」→「启动EC2 Rescue」。
- 按照向导完成操作,工具会自动检测并修复网络路由类问题,包括恢复主路由表。
注意事项
- 操作前建议为根卷创建快照,避免数据意外丢失;
- 串行控制台需要提前在账户或实例级别启用,若未启用,优先选择方式二。
内容的提问来源于stack exchange,提问作者ekene
相关产品推荐
相关产品推荐

