手头的测试服务器,版本是ubuntu 12.4,每次通过/etc/resolv.conf 配置完DNS后,在重启机器后,发现/etc/resolv.conf里面又为空了,又要重新配置(好蛋疼的感觉)。经网上查找测试找到了一劳永逸的方法。

先说说为什么/etc/resolv.conf每次重启会清理掉,通过ls -l 查看,会发现resolv.conf只是一个软链接文件,源文件位于/run/resolvconf/resolv.conf ,查看该文件会发现如下两条注释:

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

上面已经说的非常清晰明了了。

解决方法

方法一:

/etc/network/interfaces中添加一行DNS信息

1dns-nameservers 8.8.8.8

方法二:

编辑/etc/resolvconf/resolv.conf.d/base文件,加入DNS信息

1nameserver 8.8.8.8

方法三:

编辑/etc/resolvconf/resolv.conf.d/head 文件,在其中加入DNS信息

1nameserver 8.8.8.8

注:此方法虽然有用但不推荐,因为该文件中,同样有警告信息。

增加完DNS信息后,执行下面的命令生效

1# sudo resolvconf  -u

执行完该命令后,查看/etc/resovle.conf文件,会发现其DNS信息,就是我们刚刚在方法一或方法二中写的DNS信息。