LINUX的DNS修改

1,852 views

以前修改LINUX的DNS很简单, 直接在/etc/resolv.conf里面添加修改就行了。 现在的LINUX的DNS管理软件不再这么做了, 大多数情况下,大家会看到resolv.conf有如下注释

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

然后不管怎么修改, 最后都会悲剧, 因为不会生效。

这时候要看当前LINUX的DNS管理软件是哪个了。 ubuntu13.10的是resolvconf, 有些可能是dnsmasq之类的。
resoveconf的话,解决办法如下:
修改/etc/resolvconf/resolv.conf.d/head, 在head里面添加
nameserver 8.8.8.8#你喜欢哪个用哪个
然后sudo resolvconf -u使之生效

其实我们可以通过man resolvconf看到如下3个文件的英文说明:
/etc/resolvconf/resolv.conf.d/base
/etc/resolvconf/resolv.conf.d/head
/etc/resolvconf/resolv.conf.d/tail

具体英文说明就不贴了。 3个文件分别用途是
base : 如果当前LINUX没有DNS,那么至少会使用这个base里面指定的配置
head : 会给默认/etc/resolv.conf的内容之前添加本文件的配置
tail : 会给默认/etc/resolv.conf的内容之后添加本文件的配置(没有自己创建去吧,记得设置对权限)

最后sudo resolvconf -u 生效基本上没啥问题了。

Leave a Reply

Your email address will not be published.