声明: 最近搭建openstack单机版,总是一重启物理机,ip就变。现在终于解决了。感谢这个作者。地址链接https://www.cnblogs.com/frx9527/p/eth0.html

好人一生平安!!!!谢谢。现在复制下来,希望大家有所帮助。感恩。

最近,一台虚拟机是从外网下载的,然后导入本地测试环境使用。

发现一个奇怪的问题:修改了 /etc/sysconfig/network-scripts/ifcfg-eth0 保存后,

重启网络服务( systemctl restart network)是有效的。但是重启系统之后就失效了。

ifcfg-eth0内容被重置了。

 

尝试了关闭自带网络管理工具,

systemctl stop NetworkManager
systemctl disable NetworkManager

无效。重启后,ifcfg-eth0内容仍被重置。

打开这个文件后,顶部有一行注释提示:

复制代码
# Created by cloud-init on instance boot automatically, do not edit.
#
BOOTPROTO=dhcp
DEVICE=eth0
HWADDR=fe:fc:fe:46:95:ba
ONBOOT=yes
TYPE=Ethernet
USERCTL=no
复制代码

 

好吧,找一找服务: 

systemctl list-unit-files

发现了这4行,应该是和最下面一行有关:

cloud-config.service                          enabled 
cloud-final.service                           enabled 
cloud-init-local.service                      enabled 
cloud-init.service                            enabled 

于是,上网搜了俩小时,尝试过N次后,最终找到了某位大神给的正确答案:

在 /etc/cloud/cloud.cfg中添加内容,禁止 cloud-init服务接管网络,如下图所示:

network:
  config:disabled

 

后续执行以下操作:清理,检查cloud-init配置文件,再次检查eth0配置,重启测试。

复制代码
cd /usr/lib/python2.7/site-packages/cloudinit/sources/
rm -rf __init__.pyc 
rm -rf __init__.pyo
rm -rf /var/lib/cloud/* 
rm -rf /var/log/cloud-init* 

cloud-init init --local

cat /etc/sysconfig/network-scripts/ifcfg-eth0

reboot
复制代码

https://www.cnblogs.com/frx9527/p/eth0.html