【问题原因】
NetworkManager是一个软件工具,旨在简化计算机网络的使用。NetworkManager可用于基于Linux内核和其他类Unix操作系统。目前主流Linux操作系统都使用NetworkManager进行网络自动化配置,包括IP自动获取和DNS配置。
通常情况下,租户创建网络时会定义该网络使用的DNS服务器,业务虚拟机会通过DHCP获取到该信息,并配置于虚拟机内部。但是有部分情况下,客户业务仅需要使用网络提供的DHCP IP分配能力,不需要平台提供的DNS信息,这时就需要确保虚拟机内自定义DNS并确保不被NetworkManager或其他DHCP客户端软件自动还原。
常见linux系统配置方式:
1. 网卡dns配制
/etc/sysconfig/network-scripts/ifcfg-eth0 配置文件添加DNS服务器地址
2. DNS服务器地址配制
/etc/resolv.conf
3. host主机名配制
/etc/hosts
Linux下设置DNS的位置主要是,
1网卡设置配置文件里面DNS服务器地址设置,2.系统默认DNS服务器地址设置。3,hosts文件指定
生效顺序是:
hosts文件指定 > 网卡设置配置 > DNS服务器地址
PS:
DNS服务器配制是立即生效的,网卡配制是永久的,每次重启DNS服务器配制的DNS会被网卡配置文件中的DNS覆盖。
【永久生效且重启后不被网卡配置文件覆盖解决方式】
- 任意方式登录虚拟机操作系统,打开虚拟机内控制台,编辑网卡文件。
vi /etc/sysconfig/network-scripts/ifcfg-ethxxx
- 编辑网卡文件
vi /etc/sysconfig/network-scripts/ifcfg-ethxxx - 加入“PEERDNS=no”并保存:
重启网络服务生效:
systemctl restart network
根据需求自行修改/etc/resolv.conf文件。
方法二:设置/etc/resolv.conf为只读:
chattr +i /etc/resolv.conf
如果需要再次修改,请先执行“chattr -i /etc/resolv.conf”取消只读后进行修改