Linux实例IP地址丢失怎么办?
可能原因
ECS实例的网络配置为DHCP(Dynamic Host Configuration Protocol,动态主机设置协议)方式。
以CentOS 7的ECS为例,如果网络配置为DHCP方式,当ECS实例启动时,Linux系统的NetworkManager服务会启动dhclient进程,dhclient进程会向DHCP服务器请求分配IP地址,并获得IP地址租约到期时间。
正常情况下,dhclient进程会定期向DHCP服务器更新租约到期时间,以确保实例IP地址的可用性,如下图:
当用户误操作停止了NetworkManager服务,并清理了dhclient进程时,会导致ECS实例无法自动更新IP地址的续租到期时间。当租约到期后,ECS实例的IP地址会被释放,导致网络不通。
解决方案
- 远程登录ECS实例。
- 执行以下命令,重启NetworkManager服务,并设置为开启自启动。
systemctl restart NetworkManager
systemctl enable NetworkManager
- 执行以下命令,查看NetworkManager服务状态。
systemctl status NetworkManager
图3 查看NetworkManager服务状态
- 执行以下命令,查看网络状态。
若出现如图4所示结果,表示ECS实例的网络恢复正常。
附录
常见操作系统的默认网络服务配置,建议不修改,直接采用默认值。
操作系统 |
网络服务 |
是否内置DHCP功能 |
---|---|---|
CentOS 6 |
Network |
否,有单独的dhclient进程 |
CentOS 7 |
NetworkManager |
否,有单独的dhclient进程 |
CentOS 8 |
NetworkManager |
是 |
Ubuntu 16.04 |
NetworkManager |
否,有单独的dhclient进程 |
Ubuntu 18.04 |
NetworkManager |
否,有单独的dhclient进程 |
Ubuntu 20.04 |
NetworkManager |
是 |
Ubuntu 22.04 |
NetworkManager |
是 |