bridged(桥接模式)、NAT(网络地址转换模式)和host-only(主机模式)-VMware下三种网络配置方式

VMWare提供了三种工作模式,它们是bridged(桥接模式)、NAT(网络地址转换模式)和host-only(主机模式)。要想在网络管理和维护中合理应用它们,你就应该先了解一下这三种工作模式。

1.bridged(桥接模式)

  在这种模式下,VMWare虚拟出来的操作系统就像是局域网中的一*立的主机,它可以访问网内任何一台机器。

  在桥接模式下,你需要手工为虚拟系统配置IP地址、子网掩码,而且还要和宿主机器处于同一网段,这样虚拟系统才能和宿主机器进行通信。同时,由于这个虚拟系统是局域网中的一个独立的主机系统,那么就可以手工配置它的TCP/IP配置信息,以实现通过局域网的网关或路由器访问互联网。

  使用桥接模式的虚拟系统和宿主机器的关系,就像连接在同一个Hub上的两台电脑。想让它们相互通讯,你就需要为虚拟系统配置IP地址和子网掩码,否则就无法通信。

  如果你想利用VMWare在局域网内新建一个虚拟服务器,为局域网用户提供网络服务,就应该选择桥接模式。

2.host-only(主机模式)

  在某些特殊的网络调试环境中,要求将真实环境和虚拟环境隔离开,这时你就可采用host-only模式。在host-only模式中,所有的虚拟系统是可以相互通信的,但虚拟系统和真实的网络是被隔离开的。

  提示:在host-only模式下,虚拟系统和宿主机器系统是可以相互通信的,相当于这两台机器通过双绞线互连。

  在host-only模式下,虚拟系统的TCP/IP配置信息(如IP地址、网关地址、DNS服务器等),都是由VMnet1(host-only)虚拟网络的DHCP服务器来动态分配的。

  如果你想利用VMWare创建一个与网内其他机器相隔离的虚拟系统,进行某些特殊的网络调试工作,可以选择host-only模式。

3.NAT(网络地址转换模式)

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

  如果你想利用VMWare安装一个新的虚拟系统,在虚拟系统中不用进行任何手工配置就能直接访问互联网,建议你采用NAT模式。

  提示:以上所提到的NAT模式下的VMnet8虚拟网络,host-only模式下的VMnet1虚拟网络,以及bridged模式下的VMnet0虚拟网络,都是由VMWare虚拟机自动配置而生成的,不需要用户自行设置。VMnet8和VMnet1提供DHCP服务,VMnet0虚拟网络则不提供。

这个问题一直都没有彻底的搞清楚,心里不是很有数,Vmware中什么网桥,NAT啊,Hostonly什么的,另外还有Colinux里面的网络问题。总之很繁杂,搞清楚很有必要。

1.VMware网络连接的几种方式

大家在安装完虚拟机后,默认安装了两个虚拟网卡,VMnet1和 VMnet8,其他的未安装(当然也可以手动安装其他的)。其中VMnet1是host网卡,用于host方式连接网络的。VMnet8是NAT网卡,用 于NAT方式连接网络的。它们的IP地址是随机生成的,如果要用虚拟机做实验的话,最好将VMnet1到VMnet8的IP地址改掉。习惯上把 VMware虚拟网卡使用的网段“固定”,使用如下原则:VMnet1对应的网段是192.168.10.0,VMnet2对应的网段是 192.168.20.0,其他的类似。当然平常只是随便用用的就不用改了,能上网就行了。

网络连接的方式主要有:Bridged(桥接)、NAT、host(主机网络)。

Use bridged networking(使用桥接网络)

说明:使用VMnet0虚拟交换机,此时虚拟机相当与网络上的一*立计算机与主机一样,拥有一个独立的IP地址。

使用桥接方式,A,A1,A2,B可互访。

Use network address translation(NAT)

说明:使用Vmnet8虚拟交换机,此时虚拟机可以通过主机单向网络上的其他工作站,其他工作站不能访问虚拟机。

使用NAT方式,A1,A2可以访问B,但B不可以访问A1,A2。但A,A1,A2可以互访。

Use Host-Only networking(使用主机网络)

说明:使用Vmnet1虚拟交换机,此时虚拟机只能与虚拟机、主机互访。也就是不能上Internet

使用Host方式,A,A1,A2可以互访,但A1,A2不能访问B,也不能被B访问。

实际应用:现在最普遍使用的是宽带,使用桥接方式,主机必然可以上网,但是虚拟机上的操作系统是不可以上网的。此时你的主机就相当于A,而虚拟机就相当于 A1,除非你再向运营商(如电信,网通)申请个IP地址,显然这是不可取 的。如果你有路由器的话,那么就可以使用桥接方式上网,因为此时你申请的IP地址是写在了路由器上,而不是你的机器上,这样包括你的主机,虚拟机,也包括 连在路由器上的其他人的机器,都将可以上网,使用着由路由器自动分配的IP地址,IP地址一般是192.168.0.XXX。貌似运营商不太乐意你使用路 由器,说什么对他们交换机的接口有损害。当然,只要你的主机可以上网,使用NAT方式,虚拟机总是可以上网(当然不包括在你胡乱改写IP,网关,DNS等 信息的情况下)。

实例手动设置:假设主机的VMnet1使用网段地址为192.168.10.0,VMnet8使用网段地址为192.168.80.0,网关地址为 192.168.80.254(也就是NAT路由器地址,可自己设置,在VMnet8上),主机网卡使用地址为192.168.1.1。

一、使用桥接方式,虚拟机A1的IP地址可以设置成192.168.1.5(与主机网卡地址同网段的即可),其他的诸如网关地址,DNS,子网掩码均与主机的相同。

二、使用NAT方式,虚拟机A1的IP地址可以设置成192.168.80.5(与VMnet8使用相同的网段),网关是NAT路由器地址,即192.168.80.524

三、使用host-only方式,虚拟机A1的IP地址可以设置成192.168.10.5(与VMnet1使用相同的网段)

说明:一般用户不需要自己手动设置,选择自动获取,或开启DHCP服务即可。

2.第二套说法

很多朋友都用vmware来测试不同的系统,我结合自己的经验谈一下对网络设置的理解,不对的地方请指正。

bridge:

这种方式最简单,直接将虚拟网卡桥接到一个物理网卡上面,和linux下一个网卡 绑定两个不同地址类似,实际上是将网卡设置为混杂模式,从而达到侦听多个IP的能力。

在此种模式下,虚拟机内部的网卡(例如linux下的eth0)直接连到了物理网卡所在的网络上,可以想象为虚拟机和host机处于对等的地位,在网络关系上是平等的,没有谁在谁后面的问题。

使用这种方式很简单,前提是你可以得到1个以上的地址。对于想进行种种网络实验的朋友 不太适合,因为你无法对虚拟机的网络进行控制,它直接出去了。

nat方式:

这种方式下host内部出现了一个虚拟的网卡vmnet8(默认情况下),如果你有过 做nat服务器的经验,这里的vmnet8就相当于连接到内网的网卡,而虚拟机本身则相当于运 行在内网上的机器,虚拟机内的网卡(eth0)则独立于vmnet8。

你会发现在这种方式下,vmware自带的dhcp会默认地加载到vmnet8界面上,这样 虚拟机就可以使用dhcp服务。更为重要的是,vmware自带了nat服务,提供了从vmnet8到外网的地址转 换,所以这种情况是一个实实在在的nat服务器在运行,只不过是供虚拟机用的。

很显然,如果你只有一个外网地址,此种方式很合适。

hostonly:

这应该是最为灵活的方式,有兴趣的话可以进行各种网络实验。和nat唯一的不同的是,此 种方式下,没有地址转换服务,因此,模认情况下,虚拟机只能到主机访问,这也是hostonly的名字的意义。

默认情况下,也会有一个dhcp服务加载到vmnet1上。这样连接到vmnet1上的虚拟机仍然可以设置成dhcp,方便系统的配置.

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

a。使用自己dhcp服务:首先停掉vmware自带的dhcp服务,使dhcp服务更为统一。

b。使用自己的nat,方便加入防火墙。windows host可以做nat的方法很多,简单的如windows xp的internet共享,复杂的如windows server里的nat服务。

c. 使用自己的防火墙。因为你可以完全控制vmnet1,你可以加入(或试验)防火墙在vmnet1和外网的网卡间。

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

3.第三套说法

VMware支持三种类型的网络:NAT,Bridged,Host-only。

NAT

这种方式下,虚拟机的网卡连接到宿主的 VMnet8 上。此时系统的 VMWare NAT Service 服务就充当了路由器的作用,负责将虚拟机发到 VMnet8 的包进行地址转换之后发到实际的网络上,再将实际网络上返回的包进行地址转换后通过 VMnet8 发送给虚拟机。VMWare DHCP Service 负责为虚拟机提供 DHCP 服务。

Bridged

这种方式下,虚拟机就像一台真正的计算机一样,直接连接到实际的网络上,与宿主机没有任何联系。

Host-only

这种方式下,虚拟机的网卡连接到宿主的 VMnet1 上,但系统并不为虚拟机提供任何路由服务,因此虚拟机只能和宿主机进行通信,而不能连接到实际网络上。

replicate physical network connection state 选项解释:

Select if the virtual machine uses a bridged network connection and if you use the virtual machine on a laptop or other mobile device. As you move from one wired or wireless network to another, the IP address is automatically renewed.

单机多网卡 或者 笔记本和移动设备使用虚拟机时,当在有线网络和无线网络切换时,勾选了Replicate physical network connection state,虚拟机网卡的ip地址会自动更新,不需要重新设置。

我的Host是Windows7,安装VMware虚拟机,在虚拟机中装了Ubuntu10.04,首先介绍下VMware下的几个虚拟设备: 
VMnet0:VMware用于虚拟桥接网络下的虚拟交换机; 
VMnet1:VMware用于虚拟Host-Only网络下的虚拟交换机; 
VMnet8:VMware用于虚拟NAT网络下的虚拟交换机; 
VMware Network Adapter VMnet1:这是Host用于与Host-Only虚拟网络进行通信的虚拟网卡; 
VMware Network Adapter VMnet8:这是Host用于与NAT虚拟网络进行通信的虚拟网卡; 

一.虚拟机和虚拟网卡之间的关系 
 
在使用VMware
Workstation创建虚拟机时,创建的虚拟机中可以包括网卡。你可以根据需要选择使用何种虚拟网卡,从而表明想要连接到那个虚拟交换机。在VMware

Workstation中,默认有3个虚拟交换机,分别是VMnet0(使用桥接网络)、VMnet1(仅主机网络)和VMnet8(NAT网络),还可以根据需要添加VMnet2~VMnet7和VMnet9等7个虚拟机交换机,而在VMware
Workstation 5以后的版本中,还可以使用Team中的提供的虚拟交换机。 

二、桥接网络(bridge)

在桥接模式下,VMware虚拟出来的操作系统就像是局域网中的一独立的主机,它可以访问网内任何一台机器。不过你需要多于一个的IP地址,并且需要手工为虚拟系统配置IP地址、子网掩码,而且还要和宿主机器处于同一网段,这样虚拟系统才能和宿主机器进行通信。    
如果你想利用VMware在局域网内新建一个虚拟服务器,为局域网用户提供网络服务,就应该选择桥接模式。可将虚拟机模拟接入主机所在的局域网。 

三、nat网络 
 
在NAT网络中,会使用到VMnet8虚拟交换机,Host上的VMware Network Adapter
VMnet8虚拟网卡被连接到VMnet8交换机上,来与Guest进行通信,但是VMware Network Adapter
VMnet8虚拟网卡仅仅是用于和VMnet8网段通信用的,它并不为VMnet8网段提供路由功能,处于虚拟NAT网络下的Guest是使用虚拟的NAT服务器连接的Internet的。

这时候,你的Guest和Host就可以实现互访了,并且如果你的Host此时已经连接到了Internet,那么你的Guest也就可以连上Internet了。那么VMware
Network Adapter
VMnet8虚拟网卡在这里扮演了一个什么角色呢?它仅仅是为Host和NAT虚拟网络下的Guest通信提供一个接口,所以,即便Disable掉这块虚拟网卡,Guest仍然是可以上网的,只是Host无法再访问VMnet8网段而已。 
  这种方式的时候,主机需要开启vmdhcp和vmnat服务。

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

四、host-only

在某些特殊的网络调试环境中,要求将真实环境和虚拟环境隔离开,这时你就可采用Host-only模式。在Host-only模式中,所有的虚拟系统是可以相互通信的,但虚拟系统和真实的网络是被隔离开的。可以利用Windows
XP里面自带的Internet连接共享(实际上是一个简单的路由NAT)来让虚拟机
通过主机真实的网卡进行外网的访问。虚拟系统的TCP/IP配置信息(如IP地址、网关地址、DNS服务器等),都是由VMnet1(Host-only)虚拟网络的DHCP服务器来动态分配的。如果你想利用VMware创建一个与网内其他机器相隔离的虚拟系统,进行某些特殊的网络调试工作,可以选择Host-only模式。

在Host-Only网络中,Host-Only网络被用来设计成一个与外界隔绝的网络,其实Host-Only网络和NAT网络非常相似,唯一不同的地方就是在Host-Only网络中,没有用到NAT服务,没有服务器为VMnet1做路由,它当然就没有办法访问Internet啦,可是如果我的Host要和Guest通信呢?怎么办?对了!当然就要用到VMware
Network Adapter VMnet1这块虚拟网卡了。 
 
可以看到,在Host-Only网络下,Guest的Default
Gateway被设置为NULL,这是由于没有使用虚拟NAT服务器的缘故,但是,即便使用route
add命令加上某个地址做它的路由,它仍然不能访问Internet(实际上也没有地址可加)。这样,我的Guest虽然没有办法访问Internet,但是仍然可以和我的Host进行通信。实施上,如果我们足够BT,也可以在Host上来为VMware
Network Adapter VMnet1虚拟网卡来做路由,比如,我们可以用Windows
2000的RRAS来做,这样的话,处于Host-Only网络下的Guest就又可以上网了,他们只需要使用route
add命令把自己的Default Gateway改成VMware Network Adapter
VMnet1网卡即可,不过这样不推荐,也没有必要。如果仅仅想让虚拟机访问互联网,nat方式是最简单的,基本上不需要做什么操作,就能自动连接上。这也是默认的设置参数。 
  作为开发人员,我们通常需要主机,虚拟机,开发板 具有独立的地址,能互相访问。那么我们可以使用下面两种网络配置方式,bridge and host-only。 

    桥接是最简单的方式,一般是你有一个网关,你的windows主机和你VMWare里的各种unix/linux系统,都通过这个网关来通讯. 
    
而主机方式,是在没有网络的情况下,
windows主机操作系统能与VMWare虚拟机上的客户操作系统正常通讯。我们从VMWare的Virtual Network
Edit里可以看出,vnet0是用来实现桥接模式的,vnet1是用来实现主机模式的。主机和客户机是直接通过vnet1通讯的。

在主机方式下,windows主机操作系统不需要配置什么了,我们打开cmd.exe,输入ipconfig,就知道VMnet1的ip地址是什么了,因为这个ip就是VMWare虚拟机上的客户操作系统的网关ip地址。我的VMWare虚拟机上一般装的是redhat,因为linux系列里redhat是最常见的,公司用的有suse,

slaceware,unix使用solaris,freeBSD。那么我们在客户操作系统上配置网络,主要注意的是,网关的IP就是你在windows主机操作系统里用ipconfig命令查看到的VMnet1的ip地址。

例如:我在windowsXP主机下用ipconfig看到VMnet1的IP地址是192.168.159.1,那我在redhat里就把网关IP配置为192.168.159.1,把redhat的IP配置为192.168.159.2。我们从windowsXP主机cmd.exe里ping
192.168.159.2,如果redhat启动sshd服务器,
我们可以telnet 192.168.159.2
22,若连接成功则一切安装OK,说明我们从windowsXP主机连接redhat系统没有问题了。反之,我们怎么从redhat系统连接windowsXP主机,
从redhat系统角度来看,VMnet1的IP地址就是windowsXP主机的地址,在redhat系统里ping 192.168.159.1,
再telnet 192.168.159.1 139,
若连接成功则一切安装OK,说明我们从redhat系统连接windowsXP主机没有问题了。

想学习unix/linux上c/c++开发或者其它,一个好方法就是在windows系统上装VMWare,然后在WMWare里安装各种unix/linux系统,通过crt、winscp等shell工具来连接unix/linux系统进行操作,
这样既不会因为没有windows系统而做其它事不方便,又能在一台pc机器上安装各种unix/linux系统

参考:http://blog.csdn.net/xkq_lyx/article/details/17248455

http://villasy1989.iteye.com/blog/956746

上一篇:tomcat下jndi的三种配置方式


下一篇:JNDI+Tomcat配置数据源的两种方式