VMware Workstation虚拟机在使用过程中 会经常因为虚拟机网络设置有问题而不能使用网络
下面来教大家我一直私藏的万能方法来解决这个问题,如果没用建议重新安装!因为我所有的同学Linux网络出现问题我都是这么帮他们弄的!整好的系统不下百台!

OK正式开始了

必要的检查
第一 打开VMware 图形界面上点 帮助 — 关于 许可证信息一定要已许可才能进行以后的操作
第二 我们要保证实体机也就是本电脑的网路是通畅的,网页能打开。

1.服务是否开启

首先检查VMware Workstation虚拟机网络服务是否已经启动,因为杀毒软件等可能会自动禁止虚拟机的网络服务。选中“计算机”*(W10W7叫“计算机”,XP系统叫“我的电脑”)右键—管理—服务和应用程序—服务,找到所有以VM开头的服务,选中后,右键—启动,就可以了。以防万一一般都会设置成自动启动、方法为:右键—属性,将手动启动改为自动启动。

centos7ping不通本地主机 centos7无法ping_centos7ping不通本地主机

2.检查对应虚拟机的网络设置

我们打开VM界面,选中想要操作的虚拟机、右键点击虚拟机选择设置(或者单击上方选项栏中虚拟机选项底下选中设置)然后点击硬件中的网络适配器,选中NAT模式然后点击确定 如图

centos7ping不通本地主机 centos7无法ping_linux_02

3.更改虚拟机网络设置

关闭虚拟机。在VM工具栏中的的编辑选项里,点击"虚拟网络编辑器"

(win10、win7需要先点右下角的管理员授权)

centos7ping不通本地主机 centos7无法ping_右键_03


授权完毕后选择还原默认设置

centos7ping不通本地主机 centos7无法ping_linux_04


等几分钟虚拟机会自动重设网络

**此时一定要看好重置完了以后的IP地址,比如对于这个计算机来说,

虚拟IP就是VMnet8对应的192.168.159.**IP,因为VMnet8使用的类型和外部链接系统设置的是NAT模式,对应我们前面给虚拟机设置的NAT模式,所以虚拟机的IP会以这个开头

4.更改本地客户机网络设置

右键点击本机右下角的网络,然后点击打开网络和internet设置

centos7ping不通本地主机 centos7无法ping_右键_05


点击网络和共享中心

centos7ping不通本地主机 centos7无法ping_IP_06

点击更改适配器设置

centos7ping不通本地主机 centos7无法ping_centos7ping不通本地主机_07

双击打开两个虚拟机中的网络然后选择属性(或者右键点击选择属性)双击点击网络协议IPV4然后全部选择自动!这步一定要确定!

虚拟机中的虚拟网络可能有一个也可能有多个 一般名称都会以VMnet加一个数字结尾

有几个就设置几个,如果本来就这样就直接确定千万别改

按如下步骤选择操作

centos7ping不通本地主机 centos7无法ping_CentOS_08


前面这四步结束打开虚拟机登陆
输入命令 ping www.baidu.com试一下看看能不能上网了
如果你的虚拟机是自建或者根据ISO镜像生成的、那基本都能了这个时候
如果你的不是 或者没法登陆 那就继续看:
.

5.修改虚拟机配置文件

在CentOS终端中输入

vi /etc/sysconfig/network-scripts/ifcfg-ens33

打开了以后有好多种情况,因为虚拟机一般会自动生成这个文件,所以别人的网络设置你拷贝过来是没法使用的,比如有的人的是这样的

centos7ping不通本地主机 centos7无法ping_linux_09


大概会差不多 这个时候,我们只要注意其中一行:UUID

把UUID这行后面的东西记下来,或者直接复制下来

然后手敲进去这些东西

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=*************************************
DEVICE=ens33
ONBOOT=yes

其中星号对应的就是刚才你看到的 UUID
一定要输入准确,最好把UUID复制再右键粘贴上去这样最保险!

比如这台机器改完后是这个样

centos7ping不通本地主机 centos7无法ping_CentOS_10


然后esc ——:wq退出

输入reboot重启机器

进入命令行ping一下百度 都能ping通了

输入 ifconfig 查看IP地址 用终端软件比如secureCRT连接对应的IP地址即可!

(我说一下哈:此处的IP地址就是对应这台计算机前面设置的VMnet的子网的子网,比如当时子网ip为192.168.159.0,我最后ifconfig出来的ip地址为192.168.159.128,也就是说我用secureCRT终端控制连接只需要输入这个IP然后输入账号密码t即可。每个人的机器不同,一定要注意。还有一点,在设置虚拟网络的时候有个DHCP设置大家可以点进去看一下,里面会有一个范围:那个范围就是你未来虚拟机IP地址的范围,比如我的是192.168.159.128到192.168.159.200,也就是说我这台虚拟机的IP为192.168.159.128,那我下一台虚拟机就是192.168.159.129,下下台就是192.168.159.130,下下下台就是192.168.159.131、以此类推,所以以后不要改这些设置了!什么设置DNS什么nameserver也不知道哪些2b想出来的!!!!无语!!!!)

但是有的人输入ifconfig后发现,提示没有这个指令,不仅如此,好多指令都没有比如system之类的,在百度找方法后让yum 下载对应的包,下载的时候发现一直提示下载失败更换,unknown error 然后提示trying other mirror。
这群人 我愿称之为白嫖怪,基本都是直接复制的别人的虚拟机或者在网络上找的虚拟机资料或者用的别人创建好的docker容器打包成vmx文件 直接运行而没有改配置的…直接看最后一步、第六步完成之后再重新yum install相应的包。

6.更改镜像源

换源网址:阿里云开源镜像站  1、备份(其实没啥用)

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

2、下载新的CentOS-Base.repo 到/etc/yum.repos.d/
  一定要根据自己的CentOS版本来

CentOS5:

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo

CentOS6:

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

CentOS7:

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

3、之后运行yum makecache生成缓存

yum makecache

PS:
  更换完源进行下载或者生成缓存时可能遇到以下错误:
  1.

[Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404 Not Found" Trying other mirror.

  [Errno 14] PYCURL ERROR 7 - "couldn't connect to host" Trying other mirror.

  [Errno 256] No more mirrors to try.

有效的解决方法:

yum clean all
rpm --rebuilddb

执行完上述两条语句重新使用yum下载或者生成缓存即可成功
 2.报错:

Loaded plugins: fastestmirror, langpacks, priorities
Repository epel is listed more than once in the configuration
Cleaning repos: base epel extras updates
Cleaning up everything
Maybe you want: rm -rf /var/cache/yum, to also free up space taken by orphaned data from disabled or removed repos
Cleaning up list of fastest mirrors
[root@hadoop01 yum.repos.d]# yum makecache  
Loaded plugins: fastestmirror, langpacks, priorities
Repository epel is listed more than once in the configuration
Determining fastest mirrors
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
http://mirrors.aliyun.com/centos/%24releasever/os/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not Found
Trying other mirror.
To address this issue please refer to the below wiki article

解决方法:
问题是HTTP请求失败,尝试本地访问之前wget下来的 CentOS-Base.repo 发现其中的:

http://mirrors.aliyun.com/centos/centos7ping不通本地主机 centos7无法ping_linux_11basearch/

等URL通过http的形式根本无法访问,此时将变量centos7ping不通本地主机 centos7无法ping_IP_12releasever都改为7。感觉这个变量$releasever根本就没起作用呀。

改完之后,执行yum clean all 以及 yum makecache 成功。

命令如下

sed -i s#\$releasever#7#g CentOS-Base.repo

这一步以后,再输入ifconfig,就能看到自己的IP地址了,连接即可

7.安装需要的包即可

运行中还可能有其他问题,那些就是Linux软件内部的问题了,我自己也做了一些其他攻略,大家可以看我的个人主页有详细介绍。