Holmesian Blog

阻止resolv.conf自动重置

在Ubuntu10.04下默认使用NetworkManager,每次更换网络环境:如更换无线接入热点,更换所在局域网设置,更换拨号等等。NetworkManager都会有独立的一套设置保存着。

这也就意味着每次重新连接网络resolv.conf文件就将被重写:无论之前的resolv.conf中是什么内容,都将被先清空然后在加上“# Generated by NetworkManager”字样和相应环境的nameserver设置。这本来没有多大问题,但是当我启用了dnsmasq来加速DNS解析,或者是我一直想用一个固定的DNS服务器,又或者是我的网络在NetworkManager中没有设置DNS服务器的时候就会遇到一些麻烦。

要禁止NetworkManager重置resolv.conf文件可以这样:

修改好相应的resolv.conf之后用

    sudo chattr +i /etc/resolv.conf

命令将resolv.conf文件变成只读,这样NetworkManager就不能修改resolv.conf文件了。

(另外可以将sudo chattr +i /etc/resolv.conf加到/etc/rc.local里面的exit 0之前的任何位置)

对于想使用dnsmasq来加速DNS解析的情况,还有另外一种相对柔和一点的方法把127.0.0.1加入到DNS服务器列表中.设置优先的DNS服务器

    sudo cp /etc/resolv.conf /etc/resolv.conf.auto
    sudo gedit /etc/dhcp3/dhclient.conf 

在最前面加上prepend domain-name-servers 127.0.0.1,8.8.8.8。

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »