linux's docs

2.1.3: 网络-resolv.conf


1. 遇到的问题

使用vagrant+virtualbox创建了几个主机测试dns服务,手动修改/etc/resolv.conf来指定dns地址,但是发现每次重启机器后,此文件就会被重写。 起初怀疑是vagrant的机制导致了该文件的重写,但后来被证明不是这个原因,vagrant虽然也可以去修改resolv.conf,但那是使用了virtualbox的"--natdnshostresolver1"和"--natdnsproxy1",而且这两个配置的作用是将宿主机的dns自动配置到虚拟机中,而我遇到的情况是每次重写进resolv.conf的内容并不是宿主机的dns地址。


2. 问题原因

原来此文件之所以会被重写,是因为有网卡的ip获取方式是dhcp,并不限于重启系统,而是每次重启network服务时,dhcp会在请求ip地址的同时,请求到dns信息,并重写/etc/resolv.conf文件,而我每次重启系统时,都相当于重启了network服务一次,让自己错以为是重启系统导致了此问题,于是错误的把视线放在了vagrant上。


3. 解决办法

/etc/sysconfig/network-scripts/ifcfg-ethx中配置"PEERDNS=no",此配置会禁止dhcp时获取dns的信息

Contents