Ubuntu 下 /etc/resolv.conf文件总是自动清除问题的解决方案

最近学习Linux,在虚拟机中安装的是Ubuntu操作系统,用了几天发现Ubuntu无法上网,打开命令终端,输入命令:

ping www.baidu.com -c2

结果显示名称无法识别,而直接与宿主机之间使用 IP 地址进行互ping,则可以ping得通;在Ubuntu的浏览器中输入www.baidu.com ,无法打开百度网页;但输入百度的IP地址,则可以打开百度,这说明是DNS服务出现了问题,网上找到解决方法,修改了/etd/resolv.conf文件,但该文件中有这么一句话:

#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN  //不要手动编辑该文件,你的改变会被重写

果然,虽然在该文件里加上了 nameserver  xxx.xxx.xxx.xxx ,一时可用了,但重新启动后内容又清空了,又无法解析域名了。

再次上网搜解决方案,有的说要关闭NetworkManager服务,如该网页所示:http://my.oschina.net/HIJAY/blog/223118

但个人感觉服务还是不要随便关的好。后来搜到两个解决方案,亲测搜有效:

方案1:

(i) 创建 /etc/resolvconf/resolv.conf.d/tail文件 (etc/resolvconf/resolv.conf.d 文件夹下已有了 head和base文件)

(ii) 在该文件中写入自己需要的dns服务器 (后面会补充Windows下查看DNS服务器的方法

nameserver 202.118.176.2

(iii) 重启 resolvconf程序

sudo /etc/init.d/resolvconf restart    (我试了一下在,没有效果,又重启的虚拟机,有效了)

(iv) 查看 /etc/resolv.conf文件,可以看到里面自动添加了 nameserver 202.118.176.2 , ping www.baidu.com 一可以通了

方案2:

修改 /etc/network/interfaces文件:

###interfaces中#######     
auto eth0     
iface eth0 inet static     
address 192.168.1.200     
netmask 255.255.255.0                  #子网掩码     
gateway 192.168.1.1                      #网关
broadcast 192.168.1.255     
dns-nameservers 202.118.176.2    #设置dns服务器  ---这一行是新添加的

即新添加 dns-nameservers 202.118.176.2 那一行。

(注意,nameserver用复数形式:dns-nameservers。我第一次添加没在意,用的是dns-nameserver,就行不通)

综上,个人感觉第二个方案简单,因为 /etc/network/interfaces文件本身就是存在的。

——————————————————————————————————————————————

********************************分割线***********************************

********************用Windows宿主机查看DNS服务器的IP************************

1.打开网络与共享中心:

2.点击当前正在使用的网络:

3.点击“详细信息”:

4.即可看到DNS服务器网址:

原文地址:https://www.cnblogs.com/dongling/p/5591856.html