虚拟机用了几天发现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