虚拟机用了几天发现Ubuntu无法上网,打开命令终端,输入命令:
ping www.baidu.com
结果显示名称无法识别,而直接与宿主机之间使用 IP 地址进行互ping,则可以ping得通。这说明是DNS服务出现了问题。
于是,修改/etd/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
nameserver 114.114.114.114
就可用了,但重新启动后你会发现他的内容又清空了,又无法解析域名了。
于是采用以下方法解决:
如果你是Unbuntu系统:
(1) 编辑 文件
sudo vi /etc/resolvconf/resolv.conf.d/head
(2) 在该文件末尾一行写入自己需要的dns服务器
nameserver 8.8.8.8
nameserver 114.114.114.114
(3) 重启 resolvconf程序
sudo /etc/init.d/resolvconf restar
如果你是Centos系统:
假如采用的网卡是eth0,系统默认自动使用 /etc/sysconfig/network-scripts/ifcfg-eth0 中的配置来设置 /etc/resolv.conf,由于 /etc/sysconfig/network-scripts/ifcfg-eth0 中我并没有配置DNS Server,所以导致 /etc/resolv.conf 中自然也就没有DNS配置信息,自然也就无法上网了。
解决方案:
在 /etc/sysconfig/network-scripts/ifcfg-eth0 中显式配置DNS即可,以下贴出基于静态IP配置的完整指令:
DEVICE=eth0
HWADDR=08:00:27:44
TYPE=Ethernet
####UUID=a7fa8195-b6a5-440c-9056-340cc98700fa
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.1.234
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=114.114.114.114
DNS2=8.8.8.8
配置完毕以后,切记务必重启网卡:
service network restart