最近学习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服务器网址: