ubuntu 永久设置dns信息

ubuntu 自从12.04后,会自动刷写 /etc/resolv.conf 文件,导致写入的dns信息会在重启的时候丢失。

============================

转自:http://i2cq.com/2012/05/1343

安装了ubuntu server 12.04 LTS之后,发现用过去的方法配置ip后,会出现dns失效的问题,每次启动后resolv.conf文件就被清空,查看wiki之后发现这个问题的原因。

我配置固定ip喜欢这样做

auto eht0
iface eth0 inet static
address 192.168.1.5
gateway 192.168.1.1
netmask 255.255.255.0

之后/etc/init.d/networking restart后就可以正常访问网络,如果需要配置dns,我选择直接修改resolv.conf文件

$ vi /etc/resolv.conf
nameserver 192.168.1.1
nameserver 8.8.8.8

在ubuntu 12.04之前是没问题的,更新到ubuntu 12.04之后,却出现文章开头的问题,修改resolv.conf文件,发现一条警告

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGE WILL BE OVERWRITTEN

意思是这个文件已经改由resolvconf程序来动态生成,手动编辑会被覆盖。这个resolvconf我还是第一次遇到,它是怎样的一个程序呢?wiki查询说ubuntu 12.04 lts启用了这个程序,在ubuntu manpage查到了对这个程序的功能说明,http://manpages.ubuntu.com/manpages/lucid/man8/resolvconf.8.html 或者直接man resolvconf。
resolvconf是用来解决大量自动修改resolv.conf配置的程序所设立的,官方页面是http://packages.qa.debian.org/r/resolvconf.html
他解决了一些如手动修改/etc/network/interfaces,pppd拨号,dhcp自动分配,dnsmasq缓存解析等等程序对resolv.conf文件的影响,所有改变自动被resolvconf程序吸收修改而不会相互影响冲突。
resolvconf -a eth0 添加一个设备后,resolvconf –enable-updates开启自动更新功能,我再次修改/etc/network/interfaces

auto eht0
iface eth0 inet static
address 192.168.1.5
gateway 192.168.1.1
netmask 255.255.255.0
dns-nameservers 192.168.1.1 8.8.8.8

之后,此时的resolv.conf文件就多了两行

nameserver 192.168.1.1
nameserver 8.8.8.8

如果不开启自动更新,使用resolvconf -u也能更新一次resolv.conf文件。

resolvconf是在ubuntu 12.04之后引入的一项新功能,这个守护进程能很好的解决手动编辑resolv.conf时遇到的冲突问题,很有实际意义。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。