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

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

~~~


************************************************

**获取更多知识,请点击关注:**

[嵌入式Linux&ARM](https://www.jianshu.com/c/42d33cadb1c1)

[CSDN博客](https://blog.csdn.net/liangzc1124)

[简书博客](https://www.jianshu.com/u/d5f9a4725546)

************************************************