问题描述
今天用虚拟机运行linux时,ping不通外网,出现以下错误

解决方法
方法一:用命令行配置ip
- 第一步:配置虚拟机的网络适配器,选择和宿主机相连的网卡,因为我的宿主机用wifi上网,所以选择wifi的网卡

- 第二步:查看宿主机IP地址,我的是192.168.1.6

- 第三步:查看虚拟机IP地址,ifconfig指令,查看ens33(用来上网的网卡,每个人的可能不一样)这个网卡的ip地址是否与主机IP地址在同一网段,若不一样,则通过 sudo ifconfig ens33 192.168.1.100(这个IP地址必须是没有别的机器占用的,自己随便选择)


- 配置完后ping 192.168.1.6(ping 一下主机),发现可以ping通,但是ping www.baidu.com还是报错


- 第四步,配置dns服务器,查看一下配置文件/etc/resolv.conf,里面是否有nameserver x.x.x.x(如8.8.8.8),若没有,就加上。

- 第五步:配置网关,route add default gw 192.168.1.1

- 然后在ping 外网发现就可以ping通了,但是这种方法在虚拟机重启后就会失效,需要重新配置。

方法二:直接修改配置文件
- 第一步:编辑/etc/network/interfaces文件修改网卡信息(这里要注意,网上很多教程是修改/etc/sysconfig/下的文件,这个文件夹是在redhat上才有的,Ubuntu需要修改的是我说的文件)

- 第二步:ip addr flush dev ens33 && /etc/init.d/networking restart 重启网络(注意,我的系统如果只用 /etc/init.d/networking restart命令会报错)
- 第三步:ping www.baidu.com可以ping通,而且重启后不需要再配置ip
总结
推荐第二种方法。