AWS CentOS 7实例配置静态私有IP遇cloud-init重置问题求助
解决AWS EC2 CentOS7实例静态私有IP被cloud-init重置的问题
我懂你这糟心的情况——给CentOS7的EC2实例配了静态私有IP,重启网络没问题,但实例一重启就被cloud-init把ifcfg-eth0打回原形,还得忍受cPanel的提示。别慌,咱们一步步把这个问题彻底解决:
第一步:让cloud-init别插手网络配置
cloud-init默认会在实例启动时自动重置网络参数,所以首先得切断它对网卡的控制权:
- 编辑cloud-init的主配置文件:
vi /etc/cloud/cloud.cfg - 在文件中添加或修改
network配置块,明确禁用自动网络配置:network: config: disabled - 额外禁用cloud-init的网络初始化服务,双重保险:
systemctl disable cloud-init-network.service
第二步:正确配置静态私有IP的网卡文件
现在可以放心修改ifcfg-eth0了,按照AWS的私有IP规则来配置:
- 先备份原文件,以防配置出错能恢复:
cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0.bak - 编辑
ifcfg-eth0,替换成以下内容(记得替换成你的实际参数):TYPE=Ethernet BOOTPROTO=static DEFROUTE=yes PEERDNS=yes PEERROUTES=yes IPV4_FAILURE_FATAL=no IPV6INIT=no NAME=eth0 UUID=保留原文件中的UUID值即可 DEVICE=eth0 ONBOOT=yes IPADDR=你的私有IP(比如172.31.12.34,从EC2控制台实例详情中查看) NETMASK=你的子网掩码(比如255.255.255.0) GATEWAY=你的子网网关(AWS子网网关通常是子网第一个IP,比如172.31.12.1,从VPC控制台子网详情获取) DNS1=8.8.8.8 DNS2=8.8.4.4
第三步:验证配置并重启实例
- 先重启网络服务,确认当前配置生效:
systemctl restart network - 用以下命令检查eth0的IP是否正确设置:
ip addr show eth0 - 最后重启实例,验证重启后
ifcfg-eth0是否保持修改后的状态:
重启后再次查看网卡配置和IP,确认没有被重置即可。reboot
额外注意事项
- 弹性IP不需要在网卡文件中配置,AWS会自动将弹性IP关联到你的私有IP上,只要实例运行正常,弹性IP就会保持绑定状态。
- 如果cPanel仍提示IP问题,重启cPanel服务即可同步配置:
/scripts/restartsrv_cpsrvd
内容的提问来源于stack exchange,提问作者Tom Vaughan
相关产品推荐
相关产品推荐

