安装好Ubuntu之后设置了静态IP地址,再重启后就无法解析域名,想重新设置一下DNS,终端输入: sudo vim /etc/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
内容是一段警告:说这个文件是resolvconf
程序动态创建的,不要直接手动编辑,修改将被覆盖。
在修改后重启就失效了,搜索了Ubuntu下设置DNS的相关资料,总结出两个办法:
方法一:
通过 sudo vim /etc/network/interfaces
,在它的最后增加一句:
dns-nameservers 8.8.8.8
8.8.8.8是Google提供的DNS服务,这里只是举一个例子。
重启网络后DNS就生效了,命令是:/etc/init.d/networking restart
此时再看/etc/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
-
nameserver
8.8
.8
.8
方法二:
通过修改:
sudo /etc/resolvconf/resolv.conf.d/base
(这个文件默认是空的)
在里面插入:
-
nameserver
8.8
.8
.8
-
nameserver
8.8
.4
.4
如果有多个DNS就一行一个,修改好保存,然后执行:
resolvconf -u
再cat /etc/resolv.conf
,最下面就多了2行:
-
# 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
-
nameserver
8.8
.8
.8
-
nameserver
8.8
.4
.4
可以看到我们的设置已经加上了,然后再ping一个域名,当时就可以解析了,无需重启。
附:
CentOS下修改DNS则容易的多了,直接修改/etc/resolv.conf,内容是:
nameserver 8.8.8.8
nameserver 8.8.4.4
保存就生效了,重启也没问题。