EC2 实例的操作系统 (OS) 未能成功从 AWS 的网络服务 (DHCP) 中获取到分配给它的私有 IPv4 地址
事故现象:
EC2 实例的操作系统 (OS) 未能成功从 AWS 的网络服务 (DHCP) 中获取到分配给它的私有 IPv4 地址
事件分析
- AWS 控制台的 IP (172.31.121.13):这是 AWS 的 VPC(虚拟私有云)已经为您的实例分配并预留的 IP 地址。这是它在网络层面的“官方”地址。
- ip a 命令的输出:这是您实例操作系统内部实际的网络状态。
- lo:是本地回环地址,总是 127.0.0.1,正常。
- docker0:是 Docker 服务创建的虚拟网桥,用于容器网络,它有自己的 IP 地址段 (172.20.0.1/24),这与实例的主网络无关,可以暂时忽略。
- enp39s0:这是您的主物理网卡。您可以看到它只有一个 inet6 (IPv6) 地址,完全没有 inet (IPv4) 地址。
- 结论: AWS 已经准备好了 IP 地址 (172.31.121.13),但您的操作系统由于某种原因没有去“认领”和配置这个 IPv4 地址到主网卡 enp39s0 上。
也即通常出在操作系统内部的网络配置或 DHCP 客户端上
解决办法
第 1 步:手动重新获取 DHCP 地址(最快的方法)
DHCP 客户端可能只是临时“卡住”了。我们可以手动命令它重新获取一次 IP 地址。
首先,释放当前的 DHCP 租约(如果有的话):
root@ip-172-31-121-13:/var/log# dhclient -r enp39s0
Removed stale PID file
然后,请求一个新的地址:
root@ip-172-31-121-13:/var/log# dhclient enp39s0