在虚拟机下搭建DNS服务器时,对于自己设定的域进行解析前,先要修改/etc/resolv.conf 指向自己,但是修改完数分钟后,resolv.conf文件会自动修改为以前的数据,网上找到好多答案,归类为以下;
一,
<code> /etc/resolv.conf文件自动恢复的解决方法: service NetworkManager stop #后台进程关闭 chkconfig NetworkManager off #配置关闭,永久生效。 </code>
关于这种方法,网上查了下,这个文件会被NetworkManager接管,建议关掉它。
二,
直接修改/etc/resolv.conf这个文件是没用的,网络服务重启以后会根据/etc/sysconfig /network-scripts/ifcfg-eth0来重载配置,如果ifcfg-eth0没有配置DNS,那么resolv.conf会被冲掉,重新变成空值。所以要将/etc/sysconfig/network-scripts/ifcfg-eth0修改为以下样子:
<code> DEVICE=eth0 BOOTPROTO=none HWADDR=00:xx:19:xx:xx:xx ONBOOT=yes TYPE=Ethernet USERCTL=no IPV6INIT=no PEERDNS=yes NETMASK=255.255.255.0 IPADDR=xxx.xxx.xxx.xxx GATEWAY=xxx.xxx.xxx.xxx DNS1=192.168.1.1 #根据实际情况更换,我改为本机的ip了 [root@struggle ~]# service network restart </code>
重启服务后,resolv.conf文件便会生效。
试了这种方法后,文件会生效,但是还会再变的。所以还是不行。
但是试了后都不行,最后找打了答案:
因为使用 DHCP 时,系统会主动的使用 DHCP 服务器传来的数据进行系统配置文件的修订。因此,你必须告知系统,不要使用 DHCP 传来的服务器设定值。 此时,你得要在 /etc/sysconfig/network-scripts/ifcfg-eth0 等相关档案内,增加一行:PEERDNS=no,然后重新启动网络即可。