目前常用的虚拟机软件有VMware Workstation和Virtual Box等。在使用虚拟机软件的时候,初学者都会遇到很多问题,而VMware的网络连接问题可能是遇到最多的问题之一。VMware提供了三种网络工作模式,分别是是Bridged(桥接模式)、NAT(网络地址转换模式)和Host-Only(主机模式)。要想在网络管理和维护中合理应用它们,首先应该了解一下这三种工作模式。

打开VMware虚拟机,我们可以在选项栏的“编辑”下的“虚拟网络编辑器”中看到VMnet0(桥接模式)、VMnet1(仅主机模式)、VMnet8(NAT模式),那么这些都是有什么作用呢?其实,我们现在看到的VMnet0表示的是用于桥接模式下的虚拟交换机;VMnet1表示的是用于仅主机模式下的虚拟交换机;VMnet8表示的是用于NAT模式下的虚拟交换机。

同时,在主机上对应的有VMware Network Adapter VMnet1和VMware Network Adapter VMnet8两块虚拟网卡,它们分别作用于仅主机模式与NAT模式下。在“网络连接”中我们可以看到这两块虚拟网卡,如果将这两块卸载了还可以在vmware的“编辑”下的“虚拟网络编辑器”中点击“还原默认设置”,即可重新将虚拟网卡还原。

下面详细讲述一下这三种工作模式


三种工作模式

Bridged(桥接模式)

什么是桥接模式?桥接模式就是将主机网卡与虚拟机虚拟的网卡利用虚拟网桥进行通信。在桥接的作用下,类似于把物理主机虚拟为一个交换机,所有桥接设置的虚拟机连接到这个交换机的一个接口上,物理主机也同样插在这个交换机当中,所以所有桥接下的网卡与网卡都是交换模式的,相互可以访问而不干扰。在这种模式下,VMware虚拟出来的操作系统就像是局域网中的一台独立的主机,它可以访问网内任何一台机器,在桥接模式下,虚拟机ip地址需要与主机在同一个网段,这样虚拟系统才能和宿主机器相互进行通信。如果需要联网,则网关与DNS需要与主机网卡一致。其网络结构如下图所示:

如果想利用VMware在局域网内新建一个虚拟服务器,为局域网用户提供网络服务,就应该选择桥接模式。选择桥接之后一定要重新启动主机的本地连接,否则桥接无法上网使用,这个问题可能出现在大部分人身上。

NAT(网络地址转换模式)

使用NAT模式,就是让虚拟系统借助NAT(网络地址转换)功能,通过宿主机器所在的网络来访问公网。也就是说,使用NAT模式可以实现在虚拟系统里访问互联网。NAT模式下的虚拟系统的TCP/IP配置信息是由VMnet8(NAT)虚拟网络的DHCP服务器提供的,无法进行手工修改,因此虚拟系统也就无法和本局域网中的其他真实主机进行通讯,其中VMware Network Adapter VMnet8虚拟网卡主要是为了实现主机与虚拟机之间的通信。采用NAT模式最大的优势是虚拟系统接入互联网非常简单,不需要进行任何其他的配置,只需要宿主机器能访问互联网即可。其网络结构如下图所示:

这种方式也可以实现Host OS与Guest OS的双向访问。但局域网络内其他机器不能访问GuestOS,GuestOS可通过HostOS用NAT协议访问网络内其他机器。NAT方式的IP地址配置方法是由VMware的虚拟DHCP服务器分配的,在这个IP地址中已经设置好路由。如果想利用VMWare安装一个新的虚拟系统,在虚拟系统中不用进行任何手工配置就能直接访问互联网,因此大多数情况下建议采用NAT模式

这种方式下host内部出现了一个虚拟的网卡VMnet8(默认情况下),如果有过做nat服务器的经验,这里的VMnet8就相当于连接到内网的网卡,而虚拟机本身则相当于运行在内网上的机器,虚拟机内的网卡(eth0)则独立于VMnet8。你会发现在这种方式下,VMWare自带的dhcp会默认加载到VMnet8界面上,这样虚拟机就可以使用dhcp服务。更为重要的是,VMWare自带了nat服务,提供了从VMnet8到外网的地址转换,所以这种情况是一个实实在在的NAT服务器在运行,只不过是供虚拟机用的。

很显然,如果你只有一个外网地址,或者网络IP资源紧缺,但是你又希望你的虚拟机能够联网,这时候NAT模式是最好的选择。   

Host-Only(主机模式)

在某些特殊的网络调试环境中,要求将真实环境和虚拟环境隔离开,这时就可采用host-only模式。在host-only模式中,所有的虚拟系统是可以相互通信的,但虚拟系统和真实的网络是被隔离开的。
Host-Only模式其实就是NAT模式去除了虚拟NAT设备,然后使用VMware Network Adapter VMnet1虚拟网卡连接VMnet1虚拟交换机来与虚拟机通信的,Host-Only模式将虚拟机与外网隔开,使得虚拟机成为一个独立的系统,只与主机相互通讯。其网络结构如下图所示:

提示:在host-only模式下,虚拟系统和宿主机器系统是可以相互通信的,相当于这两台机器通过双绞线互连。在host-only模式下,虚拟系统的TCP/IP配置信息(如IP地址、网关地址、DNS服务器等),都是由VMnet1(host-only)虚拟网络的DHCP服务器来动态分配的。如果想利用VMWare创建一个与网内其他机器相隔离的虚拟系统,进行某些特殊的网络调试工作,可以选择host-only模式。这应该是最为灵活的方式,有兴趣的话可以进行各种网络实验。和NAT唯一的不同的是,此种方式下,没有地址转换服务,因此,默认情况下,虚拟机只能到主机访问,这也是hostonly的名字的意义。默认情况下,也会有一个dhcp服务加载到VMnet1上。这样连接到VMnet1上的虚拟机仍然可以设置成dhcp,方便系统的配置。

但是,是不是这种方式就没有办法连接到外网呢,当然不是,事实上,这种方式更为灵活,你可以使用自己的方式,从而达到最理想的配置,例如:

  • 使用自己dhcp服务:首先停掉WMWare自带的dhcp服务,使dhcp服务更为统一。
  • 使用自己的NAT,方便加入防火墙。windows host可以做nat的方法很多,简单的如windows xp的internet共享,复杂的如windows server里的NAT服务。
  • 使用自己的防火墙。因为你可以完全控制VMnet1,你可以加入(或试验)防火墙在VMnet1和外网的网卡间。

从以上可以看出,host-only这种模式和普通的NAT Server带整个内网上网的情形类似,因此你可以方便的进行与之有关的实验,比如防火强的设置等。

三种模式下网络连接设置

Bridged

默认使用VMnet0,将虚拟机的IP设置为与主机同网段未使用的IP,其余与主机相同即可

例如若主机IP是125.216.242.150,设置虚拟机IP为125.216.242.151,子网掩码、默认网关、DNS都与主机相同,即可实现虚拟机-主机 虚拟机-互联网之间的通信。

假设主机IP如下图所示:

则可将虚拟机中系统IP设置如下:

这样即可达到虚拟机能连通外网,并且主机与虚拟机通信正常。

NAT

默认使用WMnet8,DHCP:默认的状态下DHCP。只要物理机能连通网络,虚拟机也就可以连通的

如果是要手动进行网络参数设置,则IP设置要与VMnet8同网段(这一点很重要,可以在物理机的网络设置下打开vmnet8的属性,查看其默认的地址),gateway设置成VMnet8的gateway(xxx.xxx.xxx.2),DNS设置与主机相同(也可以省略,他会自动让网关转换解析)。

例如,若VMnet8的IP为192.168.137.1,gateway 192.168.137.2,则虚拟机可以设置IP为192.168.137.15,gateway 192.168.137.2,dns 设空或者与主机相同。

详细配置方法如下,首先查看下NAT设置参数及DHCP参数:

然后修改虚拟机系统中的IP设置:

注意:IP设置可以Automatic(DHCP)或者Manual,Manual的话如上图,自动则以上设置无需进行。

也可以修改网卡配置文件,命令为vim /etc/sysconfig/network-scripts/ifcfg-eth0,这里略。

之前说过,VMware Network Adapter VMnet8虚拟网卡的作用是实现主机与虚拟机之间的通信,其实也可以做了测验测试一下,比如禁用 VMnet8然后ping www.baidu.com看是否能ping通(能),接下来,再用远程连接工具比如XShell来测试一下,看是否能连接上(不能)。

Host-Only

默认使用VMnet1,DHCP:默认下是DHCP,组成与独立的与物理网络相隔离的虚拟网络,但有一点是可以和宿主机器通信。

配置如下,首先查看一下DHCP的起始范围:

再设置虚拟机系统网卡,这里选用Automatic(DHCP):

然后尝试用主机连虚拟机:

发现主机与虚拟机之间可以通信,接下来设置虚拟机连通外网,这只需打开网络连接中的本地连接的共享即可,在状态->属性->共享中查看,没有勾选则选上。

可能遇到的问题

  1. 选择NAT模式,并且手动配置IP后,主机与虚拟机能相互ping通,主机能通过ssh连接虚拟机,但虚拟机系统出现无法上网的问题,则可以考虑打开虚拟机系统的网络配置看看,使用命令如下:
1
# vim /etc/sysconfig/network-scripts/ifcfg-eth0

可能出现的内容如下,注释掉用物理地址的那一栏即可

修改完后需要重启网络设置,可以

1
# service network restart

或者

1
# /etc/init.d/network restart

参考链接:
http://www.server110.com/vmware/201310/1973.html
http://blog.csdn.net/noob_f/article/details/51099040