浅说解决VMware桥接模式连接主机

时间:2016-07-25 10:38:31   收藏:0   阅读:17328

浅说解决VMware桥接模式连接主机

 

内容概要:

1: 搞懂VMware的桥接,NAT,HostOnly三种模式的意义.

2: 分别示范,CentOS 6,CentOS 7的手动分配固定虚拟机的IP地址.

3: 使用桥接方法ping通主机,并用Xshell远程控制.

 

解决的问题:

1: 虚拟机上不了网.

2: 无法ping通主机或远程连接.

3: 网卡启动总是失败,报错.

 

写作目的:

初装linux后,我们会习惯性的ping一下主机,看看虚拟机是否和主机连接正常,若正常便会迫不及待的用Xshell远程连接虚拟机,进行验证并操作。可安装完成后,却发现了诸多问题,例如虚拟机上不了网,ping不通主机,重新启动网卡后,也不行,甚至报错,有的同学的图形界面上干脆连网络连接的那个小图像都没有,还有的刚开始正常,可重启后,或者用几次后就有不行了。此问题看似不是什么大问题,却不小的影响到了我们初接触linux的心情,重装系统又浪费了宝贵的时间,恢复快照也许能解决问题,可确得不到知识。

因为自己开始时也深受此问题困扰,在自己查阅了几篇相关资料,并成功地解决了自己的问题,在此过程中,获得了不少知识,加之我们以后的实践多为有线局域网练习,稳定,固定,所以决定总结一下在桥接模式下,手动配置网卡IP,最终能ping通主机,从而远程连接。

 

为什么会出现这些问题:

其实出现这些种种问题有一部分是因为,在开始安装CentOS时,大家忽略了一个安装选项,那就是网络设置,按钮没打开,才出现后面的关于网卡的诸多问题,自己亲测,若此按钮打开后,无论是NAT,还是桥接,基本上来都能直接上网,或ping通主机,远程连接。但要是没点开的话,那之后可就要麻烦一下了。

 

注意:大家在安装前,要把,虚拟机——设置选项的网络适配器调成桥接模式,因为本文是采用桥接模式连接主机的,同时要点击,编辑——虚拟网络编辑器,然后在桥接模式下选择与自己电脑相符的网卡。

技术分享

技术分享

技术分享 

 

CentOS 6.8:


技术分享


在这里要注意,我的这个版本安装时,网络选项按钮是用不了的,有的不是,有的就可以打开网络连接,没有也无关紧要,后文有解决方法。

 

CentOS 7.2:

 

技术分享

技术分享

 

虽然这里可以点“+”号,直接编辑,网卡各种选项,但个人建议我们初学者还是不要添加,就用图中默认的“eno16777736”,等安装好了,既可以确认网卡开启是否正常,还能通过命令行修改网卡配置文件。

 

首先,对于我们初学者要先搞懂VMware的三种虚拟网络工作模式的含义,才有助与我们更好地解决问题,详细的介绍大家可google相关资料自行了解,这里只简单的列出了含义,并举几个有助于我们理解的小例子。

 

虚拟机网络模式:桥接;NAT;HostOnly


 ● 桥接:

在桥接模式下,VMWare虚拟出来的操作系统就像是局域网中的一台独立的主机(主机和虚拟机处于对等地位),它可以访问网内任何一台机器。在桥接模式下,我们往往需要为虚拟主机配置IP地址、子网掩码等(注意虚拟主机的ip地址要和主机ip地址在同一网段)。   

使用桥接模式的虚拟系统和主机的关系,就如同连接在一个集线器上的两台电脑;要让他们通讯就需要为虚拟系统配置ip地址和子网掩码。如果我们需要在局域网内建立一个虚拟服务器,并为局域网用户提供服务,那就要选择桥接模式。

 

举个例子:

 

例如大学宿舍里有一个路由器,宿舍里四个人连接这个路由器,路由器默认IP是192.168.1.1,子网掩码是255.255.255.0,而其他四个人是自动获取ip,假设四个人的ip是:

 

     A:192.168.1.100    C:192.168.1.102

     B:192.168.1.101    D:192.168.1.103


那么虚拟机的ip可以设置的ip地址是192.168.1.2—192.168.1.99, 192.168.1.104—192.168.1.254(网络地址全0和全1的除外,再除去ABCD四个人的ip地址)

 

假如虚拟机的ip地址设置为192.168.1.98,这个ip地址,ABCD这四个人就可以通过192.168.1.98访问虚拟机了,如果虚拟机需要上外网,那么还需要配置虚拟机的路由地址,就是192.168.1.1了,这样,虚拟机就可以上外网了,但是,上网我们一般是通过域名去访问外网的,所以我们还需要为虚拟机配置一个dns服务器,我们可以简单点,把dns服务器地址配置为google的dns服务器:8.8.8.8,到此,虚拟机就可以上网了。


NAT

NAT 是 Network address translate的简称。NAT技术应用在internet网关和路由器上,比如192.168.0.123这个地址要访问internet,它的数据包就要通过一个网关或者路由器,而网关或者路由器拥有一个能访问internet的ip地址,这样的网关和路由器就要在收发数据包时,对数据包的IP协议层数据进行更改(即 NAT),以使私有网段的主机能够顺利访问internet。此技术解决了IP地址稀缺的问题。同样的私有IP可以网关NAT 上网。 

VMWare的NAT上网也是同样的道理,它在主机和虚拟机之间用软件伪造出一块网卡,这块网卡和虚拟机的ip处于一个地址段。同时,在这块网卡和主机的网络接口之间进行NAT。虚拟机发出的每一块数据包都会经过虚拟网卡,然后NAT,然后由主机的接口发出。 

虚拟网卡和虚拟机处于一个地址段,虚拟机和主机不同一个地址段,主机相当于虚拟机的网关,所以虚拟机能ping到主机的IP,但是主机ping不到虚拟机的IP。

 

  ●Host-Only

 

    提供的是主机和虚拟机之间的网络互访。只想让虚拟机和主机之间有数据交换,而不想让虚拟机访问Internet,就要采用这个设置了。 

Host-only的条件下,VMWare在真正的Windows系统中,建立一块软网卡。这块网卡可以在网络连接中看到,一般是VMNET1,这块网卡的作用就是使Windows看到虚拟机的IP。

 

解决方案------------------------------------------------------------------

 

Centos 6:

 

首先命令行:


[root@localhost ~]# ifconfig


然后,会出现如下内容,注意,有eth0的,不管你有没有inetaddr:192.1.1.1这句,请看A,没有eth0的请看B;

 

技术分享

A:

有eth0,并且有IP地址:说明你安装没出现问题,IP也被正常的分配了。

有eth0,没有IP地址:网卡没开或IP分配出现问题。

B:

没有eth0:有两种情况,这个有可能是有的CentOS版本默认没有激活网卡,或者是网卡没认出来,这种况下你需要手动创建一个在/etc/sysconfig/network-scripts/下创建一个名为ifcfg-eth0的文件,文件内容,下文即将说到。

 

解决步骤

1:进入网络配置文件的目录


[root@localhost ~]# cd /etc/sysconfig/network-scripts/


2:编辑如下内容,没有则创建


[root@localhost network-scripts]# vim ifcfg-eth0

 

技术分享 


3:准确无误的填整后,并不能立即生效,还需执行如下命令重启网卡,重读配置文件


[root@localhost network-scripts]# service network restart


会出现如下信息,说明你的配置文件无误,网卡正常的重新启动了

技术分享

如果有failed,说明ip,网关,mac地址有误,反复检查

 

4:ping一下主机验证

技术分享

 

ping,没有丢包,最终大功告成.因为是手动添加,不再是自动获取,这回再也不用担心ip冲突,或用无线IP变化,从而总得修改Xshell的连接IP啦!

 

Centos 7:


7和6基本一样,就是7的网卡名字变了,这里为了全面的掌握此方法,7的修改我们采用图形界面。

 

解决步骤:

1:点击网卡的小图标,然后点设置网卡,连图标都没有的朋友,就按照centos6执行吧。

 技术分享

2:这里能看到自己的网卡信息,然后点击小锯齿

 

技术分享

 

4:点IPV4,把Addresses改为手动,剩下的按照实际情况,注意填写,然后点击apply

 

技术分享 

 

5:重启网卡,注意,7弹出的信息和6不一样,但只要是OK,不是failed就没问题


技术分享 

 

6:修改完成后,会自动修改对应文件内容,我们来查看一下


技术分享 

 

7:最后验证,成功ping


技术分享


自动生成的跟手动修改的还是有些不一样的,但都不妨碍,你就是删了里面一些非关键句的内容,:PREFIX,BOOTPROTO,IPV6_PEERDNS,它也不影响启动.

 


本文出自 “菩提本无树” 博客,请务必保留此出处http://kurosakisora.blog.51cto.com/10979470/1829521

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!