使用AWS快照恢复实例后无法连接互联网的问题求助
排查AWS快照恢复实例无法联网的步骤
我来帮你一步步拆解这个问题——从快照恢复实例后连不上网是个挺常见的坑,咱们从最基础的网络配置开始查起:
1. 先确认子网路由表的默认路由
很多时候恢复实例时如果选了不同子网,或者原子网的路由表被修改过,就会丢了关键的互联网路由:
- 打开VPC控制台,找到实例所在的子网,查看它关联的路由表
- 检查路由规则里是否有一条
0.0.0.0/0指向你的互联网网关(IGW)ID - 如果没有这条路由,赶紧加上——这是实例能访问外网的核心前提
2. 验证弹性IP(EIP)的实际关联状态
你说已经分配了EIP,但得确认它真的绑定对了:
- 进入EC2控制台,查看实例的“网络”标签,确认EIP关联的是实例的主网卡(如果实例有多网卡的话,别绑错了)
- 也可以用CLI命令快速验证:
aws ec2 describe-addresses --public-ips <你的EIP>,看输出里的AssociationId是否存在,且对应新实例的ID - 如果显示未关联,或者关联的是旧实例,重新绑定一次就行
3. 检查系统内部的残留网络配置
快照会保留原实例的系统配置,这很可能导致冲突:
- 如果你能通过AWS Systems Manager或者内网连接到实例,先查网卡IP:Linux用
ip addr show,Windows用ipconfig,确认私有IP和EC2控制台显示的一致 - 要是IP不对,大概率是原实例的静态网络配置在搞鬼:
- CentOS/RHEL:去
/etc/sysconfig/network-scripts/目录,删掉绑定旧IP或MAC的网卡配置文件,然后重启网络服务systemctl restart network - Ubuntu:检查
/etc/netplan/下的配置,把静态IP相关的配置注释掉,执行netplan apply
- CentOS/RHEL:去
- 另外查DNS:Linux看
/etc/resolv.conf,Windows看网卡DNS设置,确认用的是AWS提供的DNS(一般是VPC网段的第二个IP,比如VPC是10.0.0.0/16,DNS就是10.0.0.2)
4. 再深挖安全组和网络ACL的规则
你说用了相同的安全组,但别漏了这几点:
- 安全组出方向:很多人只盯入方向,忽略出方向。确保安全组允许出站到
0.0.0.0/0的流量(至少要开TCP 80/443用于上网,UDP 53用于DNS解析) - 网络ACL(NACL):这是子网层面的防火墙,默认是全通的,但如果之前改过,要确认:
- 入方向允许返回流量(比如Ephemeral端口范围,Linux一般是32768-65535,Windows是1024-65535)
- 出方向允许
0.0.0.0/0的必要协议(TCP/UDP/ICMP)
5. 检查实例的网络接口和源/目标检查
- 进入EC2控制台,查看实例的网络接口状态,确认主网卡是
已附加且可用的状态,别被误禁用了 - 再看
源/目标检查:普通实例这个选项应该是启用的(只有NAT实例、负载均衡这类需要转发流量的才要禁用),如果被改成禁用了,改回启用试试
6. 确认VPC的DNS属性设置
最后别忘了VPC层面的DNS开关:
- 打开VPC控制台,找到你的VPC,编辑DNS属性
- 确保
启用DNS主机名和启用DNS解析都设为是——要是这俩关了,实例就算能ping通IP,也没法解析域名,看起来就是连不上网
如果按上面的步骤查完还没解决,试试从实例内部用traceroute 8.8.8.8(Linux)或tracert 8.8.8.8(Windows)测试,看数据包卡在哪个环节,这样能更精准定位问题。
内容的提问来源于stack exchange,提问作者keloa
相关产品推荐
相关产品推荐

