VMWare虚拟机 网络连接模式
这个是rocks 群里面我的一个朋友分享的,我觉很好而且描述的很清楚,这是一个做事的态度问题。
1 VMWare虚拟机bridged、host-only和NAT网络模式的区别和用法
VMWare提供了三种工作模式,它们是bridged(bridged模式:对应网卡vment0)、NAT(网络地址转换模式:对应网卡vment8)和host-only(主机模式:对应网卡vment1)。三个网卡可以理解为三个通道。要想在网络管理和维护中合理应用它们,你就应该先了解一下这三种工作模式。
(在Linux下面ifconfig显示eth0第一个网卡IP,(eth就是ethernet以太网,在这里指网络接口),也是vment0,装了VMware才会出现vmnet0,vment1,vment8,vment就是VMware Network Adapter(网络适配器或称网卡)的缩写,在Linux下面ifonfig的结果和windows下面装了VMware后ipconfig的结果类似)
1.bridged(桥接模式)
在bridged模式下,VMWare虚拟出来的操作系统就像是局域网中的一台独立的主机,它可以访问网内任何一台机器。在bridged模式下,你需要手工为虚拟系统配置IP地址、子网掩码,而且还要和宿主机器处于同一网段,这样虚拟系统才能和宿主机器进行通信。同时,由于这个虚拟系统是局域网中的一个独立的主机系统,那么就可以手工配置它的TCP/IP配置信息,以实现通过局域网的网关或路由器访问互联网。
使用bridged模式的虚拟系统和宿主机器的关系,就像连接在同一个Hub上的两台电脑。想让它们相互通讯,你就需要为虚拟系统配置IP地址和子网掩码,否则就无法通信。
如果你想利用VMWare在局域网内新建一个虚拟服务器,为局域网用户提供网络服务,就应该选择bridged模式。
这种方式最简单,直接将虚拟网卡桥接到一个物理网卡上面,和linux下一个网卡绑定两个不同地址类似,实际上是将网卡设置为混杂模式,从而达到侦听多个IP的能力。
在此种模式下,虚拟机内部的网卡(例如linux下的eth0)直接连到了物理网卡所在的网络上,可以想象为虚拟机和host机处于对等的地位,在网络关系上是平等的,没有谁在谁后面的问题。
使用这种方式很简单,前提是你可以得到1个以上的地址。对于想进行种种网络实验的朋友不太适合,因为你无法对虚拟机的网络进行控制,它直接出去了。
2.NAT(网络地址转换模式)
使用NAT模式,就是让虚拟系统借助NAT(网络地址转换)功能,通过宿主机器所在的网络来访问公网。也就是说,使用NAT模式可以实现在虚拟系统里访问互联网。NAT模式下的虚拟系统的TCP/IP配置信息是由VMnet8(NAT)虚拟网络的DHCP服务器提供的,无法进行手工修改,因此虚拟系统也就无法和本局域网中的其他真实主机进行通讯。采用NAT模式最大的优势是虚拟系统接入互联网非常简单,你不需要进行任何其他的配置,只需要宿主机器能访问互联网即可。
这种方式也可以实现Host OS与Guest OS的双向访问。但网络内其他机器不能访问Guest OS(可以加端口映射吗?没有试过),Guest OS可通过Host OS用NAT协议访问网络内其他机器。NAT方式的IP地址配置方法是由VMware的虚拟DHCP服务器中分配一个IP ,在这个IP地址中已经设置好路由,就是指向192.168.138.1的。
如果你想利用VMWare安装一个新的虚拟系统,在虚拟系统中不用进行任何手工配置就能直接访问互联网,建议你采用NAT模式。
这种方式下host内部出现了一个虚拟的网卡vmnet8(默认情况下),如果你有过做nat服务器的经验,这里的vmnet8就相当于连接到内网的网卡,而虚拟机本身则相当于运行在内网上的机器,虚拟机内的网卡(eth0)则独立于vmnet8。
你会发现在这种方式下,vmware自带的dhcp会默认地加载到vmnet8界面上,这样虚拟机就可以使用dhcp服务。更为重要的是,vmware自带了nat服务,提供了从vmnet8到外网的地址转换,所以这种情况是一个实实在在的nat服务器在运行,只不过是供虚拟机用的。(这个路由IP也存在,就是网关IP,DNS Server IP也是这个。跟Host OS vmnet8查到的IP在一个网段内。比如,如果要静态设置的话就设置网关、DNS IP为192.168.2.1,而其他动态分配或设置成192.168.2.X)很显然,如果你只有一个外网地址,此种方式很合适。
3 host-only(主机模式)
在某些特殊的网络调试环境中,要求将真实环境和虚拟环境隔离开,这时你就可采用host-only模式。在host-only模式中,所有的虚拟系统是可以相互通信的,但虚拟系统和真实的网络是被隔离开的。
提示:在host-only模式下,虚拟系统和宿主机器系统是可以相互通信的,相当于这两台机器通过双绞线互连。
在host-only模式下,虚拟系统的TCP/IP配置信息(如IP地址、网关地址、DNS服务器等),都是由VMnet1(host-only)虚拟网络的DHCP服务器来动态分配的。
如果你想利用VMWare创建一个与网内其他机器相隔离的虚拟系统,进行某些特殊的网络调试工作,可以选择host-only模式。
这应该是最为灵活的方式,有兴趣的话可以进行各种网络实验。和nat唯一的不同的是,此种方式下,没有地址转换服务,因此,默认情况下,虚拟机只能到主机访问,这也是hostonly的名字的意义。
默认情况下,也会有一个dhcp服务加载到vmnet1上。这样连接到vmnet1上的虚拟机仍然可以设置成dhcp,方便系统的配置。
是不是这种方式就没有办法连接到外网呢,当然不是,事实上,这种方式更为灵活,你可以使用自己的方式,从而达到最理想的配置,例如:
a。使用自己dhcp服务:首先停掉vmware自带的dhcp服务,使dhcp服务更为统一。
b。使用自己的nat,方便加入防火墙。windows host可以做nat的方法很多,简单的如windows xp的internet共享,复杂的如windowsserver里的nat服务。
c. 使用自己的防火墙。因为你可以完全控制vmnet1,你可以加入(或试验)防火墙在vmnet1和外网的网卡间。
从以上可以看出,hostonly这种模式和普通的nat server带整个内网上网的情形类似,因此你可以方便的进行与之有关的实验,比如防火强的设置等。
提VMware Host only工作方式
在这种工作方式下,Guest由DHCP服务器分配IP地址。并且可以在192.168.222.X之间保持通信。但是在Guest机器上并不能Ping通Host的172.16.1.210这个地址。因为通信被限制在主机(所以叫做Host Only)。这种方式看起来是很像NAT方式,但是在这种方式下Guest只能和Host之间通信,而不能同在局域网的计算机进行通信,除非在HOST上做转发或路由。
示:以上所提到的NAT模式下的VMnet8虚拟网络,host-only模式下的VMnet1虚拟网络,以及bridged模式下的VMnet0虚拟网络,都是由VMWare虚拟机自动配置而生成的,不需要用户自行设置。VMnet8和Mnet1提供DHCP服务,VMnet0虚拟网络则不提供。#P#
VMware三种网络连接上网设置
1.bridge :
默认使用vmnet0
将虚拟机的ip设置与主机同网段未使用ip,其余与主机相同:
例如主机ip是192.168.2.46,设置虚拟机ip为192.168.2.254。netmask,broadcast,gateway,dns都与主机
相同即可实现虚拟机<--->主机虚拟机<---->互联网通信。
2.nat :
默认使用vmnet8
DHCP:默认的状态下是DHCP。
只要物理机能连通网络,虚拟机也就可以连通的
手动设置:
(这一点很重要,你要以在物理机的网络属性下打开vmnet8的属性,查看其默认的地址。但不要更改哦)ip设置与vmnet8同网段,gateway设置成vmnet8的gateway(xxx.xxx.xxx.2)中可以查到vmnet8的gateway,通常是edit->virtualnetwork Editor->Host Virtual Network Mapping ,找到VMNET8,单击左箭头的图标,选取NAT,你就可以看到Gateway netmask,broadcast设置与vmnet8相同,dns设置与主机相同。(DNS省也可,他会自动让网关转换解析)例如 vmnet8 ip:192.168.187.1gw :192.168.187.2 这里是系统的默认,不可以更改的哦。
虚拟机设置: ip:192.168.187.254 gw: 192.168.187.2 dns:(空)或者:202.102.224.68 (实际上,大家想想,这样的设置实际上和DHCP分配是一样的,没有什么特别,也显得没有什么意义)
注意:nat方式类似于路由器(就像云计算实验室的路由器一样,外网访问不过来机群的node某节点,除非做nat映射),所以vmware workstation设置了nat后虚拟机是可以上网的,但是外网访问不过来(除非做端口映射,下文中有讲解)
3.host-only :
默认使用vmnet1
DHCP:默认下是DHCP
组成与独立的与物理网络相隔离的虚拟网络
但有一点是可以和宿主机器通信。
当然你可以手动指定IP,但网头一要选择VMNET1的IP哦
详解:
host-only这种模式下是独立主机的模式,意思是不可以和外界通信的。但是我们可以这样理解,这种模式使用的是vmnet1,也就是一台虚拟的交换机。
不能上网的原因分析:
虚拟机本身是根据自身的DHCP分配的IP,本身和物理机不是一个段内的。大家要问了,如果手动分配与物理机机段内的IP与相同的DNS解析不就可以了吗??但是告诉大家这样也是不可以的。没有桥接与NAT这些共享与转换IP的模式,也是连不通的(这只是我的个人理解。)难道就不能上网了吗?看看就知道了。
上网:
1、在物理主机的本地连接设置对 vmnet1的共享(一定要是vmnet1哦,为什么不用我说了吧^_^)这样vmnet1连接的IP也就变成了192.168.0.1,这和我们平时物理机的共享连接是一样
2、手动设置与物理机相同段内的IP,与相同的DNS解析(或者是物理主机的IP),网关设为
192.168.0.1
例:HOST(VMNET1):192.168.0.1 NETMASK 255.255.255.0
GUEST: 192.168.0.2 NETMASK 255.255.255.0DNS 192.168.0.1
说白了,我们利用的也只是把虚拟机当作物理机来进行的共享的网络设置,在这里问一下,那么如果用代理呢,想想吧,不要什么都问我哦。我也是在学。
在这里我们主要是理解下下虚拟机的连接与主机连接的一个默契。不正确的地方大家更正补充吧。
2 外网访问VMware Workstation中通过NAT联网的虚拟机
目的
实现从主机或主机所在网络其他主机访问虚拟机资源,例如访问虚拟机里面搭建的WEB站点等。
背景
主机:Windows 7(64bit)
虚拟工具:VMwareWorkstation 7.1
虚拟机:UbuntuLinux 10.4(32bit)
主机IP:192.168.1.100
虚拟机IP:192.168.174.128
过程
1.虚拟工具设置虚拟机通过NAT联网,如下图所示,若主机能上网,虚拟机里面该也能上网。
2.虚拟机里面站点建好,例如Tomcat创建的默认站点:http://localhost:8080/,打开如下图所示。
3.打开“Edit”→“VirtualNetwork Editor”,选择NAT方式的那张虚拟网卡,如下图所示。
4.打开“NAT Setings”→“Add”,增加影射结果如下图所示。
实现过程如下。
(1)打开“Add”如下图所示。
(2)往“Host port”中填入想其他机器访问用的端口号,例如主机IP为192.168.1.100,若将“Host port”设为332538859,则访问Tomcat的URL则为:http://192.168.1.100:332538859。这里将“Host port”设为8080。
(3)往“Virtual machine IP address”中输入虚拟机的IP地址(可以用ifconfig-a查看到),例如192.168.174.128。
(4)往“Vitual machine port”中输入虚拟机里资源端口号,例如Tomcat搭建的站点默认端口号为8080,那么这里就输入8080。(看来如果是搭建其他的东西,则需要搞到默认端口号)
(5)往“Description”中输入对该端口影射的注释信息,例如输入“虚拟机里面的Tomcat端口影射”之类的描述都是可以的。
(6)设置好后,最好保存并应用。
5.通过本主机访问虚拟机里面的Tomcat站点,输入网址:http://localhost:8080即可打开网页如下所示(???是输入http://192.168。1.100:8080吧)。若要从主机所在网络的主机访问虚拟机里面的Tomcat站点,则需要指定主机地址,例如主机地址为192.168.1.100,那么访问的URL为:http://192.168.1.100:8080。
6.很重要:如果本地ping不同192.168.66.200的虚拟机的ip时,使用http://192.168.66.200:5000访问
后记
曾经配置成功过虚拟机端口影射,今晚突然需要用到这个功能,一时想不起来,从网上搜索了一番,花了不少时间才找到答案,一来自己搜索不够聪明,二来搜索引擎搜索也不够聪明,于是浪费了不少时间。
对于曾经做成功过的事,若能记录下来,以备他日查阅,该更有意义。一来自己可以避免犯二错,二来自己做成功的事情可以与其他任何人共享,都是一件及其有乐趣的事情。
——于2010年10月9日凌晨
apache安装在虚拟机上,通过局域网的ip地址能够在本机上对它进行访问,但是在外网就不能通过外网的IP地址对它进行访问了。apache的端口我已经改成了8000,虚拟机用的是Ubuntu9.10操作系统,防火墙也关掉了,不知道有没有办法让外网访问我的apache啊。
1 你的虚拟机的网络要使用桥接方式. 如果不是桥接方式而是NAT 则要在虚拟机网络设置里为你的虚拟机添加端口映射 .
(这说明虚拟机做服务器提供对外服务,简单方法是桥接,如果没有IP的话,就用NAT+端口映射去实现)
2 在你的外网路由器上要将端口映射到你的虚拟机获取的IP上(这是桥接方式时), 如果不是桥接方式. 那就要把外网路由器的端口映射到你本机的端口上.
3 关掉本机及虚拟机的网络防火墙. 如果不想关, 则要在网络纺火墙里添加相应的规则, 以便让数据能正确到达虚拟机.
又见:VMware_Workstation实例二:单IP的虚拟机提供外网访问
2008年,我写了一篇如何设置VMware Workstation虚拟机的双网卡来实现让外网访问虚拟机,此后有不少朋友给我发邮件或是留言,询问单网卡局域网下或是单公网IP下如何实现类似功能。在我一一进行答复后,心里头就想写一篇来解答朋友们的疑问。时隔两年多后,咱们来分享VMware Workstation虚拟机单网卡单公网IP下实现让外网访问虚拟机的方法。
首先呢,一般情况下,除了机房托管的机器外,单位或是个人家庭等的网络服务器一般会比较少直接分配公网IP,三种网络模式简图如下:
知道了以上的网络拓扑结构后,咱们要做的事情就很清晰了。首先,了解VMware三种网络模式的区别在哪里。其次,根据不同的网络环境,使用不同的VMware网络设置:
家用和公司或单位,因为机器处于内部局域网,能用的IP地址比较多,因此可以采用默认的Bridged方式,Bridged方式一般无需设定,建立虚拟机的时候一路next,默认的就是Bridged方式。如果要实现双网卡模式,可以参考我上一篇文章:《VMware Workstation虚拟机实例:让外网访问虚拟机》。
本文重点,也是众多朋友询问过的:机房里单IP的服务器安装虚拟机给外网提供服务的模式。也就是上方图片中的模式3。这种模式下,由于IP地址唯一,无法使用Bridged方式了。Host-Only模式为全封闭的模式,只能访问到宿主(Host),甚至连外网都无法连通,所以Host-Only模式排除掉。于是,我们眼里就剩下NAT模式了。
根据上面的分析,咱们的思路很明确。就是使用VMware 的NAT网络模式。那么接下来主要有如下两个要点:
-
使用VMware的NAT网络模式后,找到虚拟机的IP地址。虚拟机的网卡为DHCP模式,请进入虚拟机内查到虚拟机的IP地址,比如本文中的例子是Ubuntu的虚拟机,下图中的红圈内的就是虚拟机的IP地址:
-
在VMware Workstation主界面上点“编辑”-“编辑虚拟网络”,如下图:
-
打开VMware Workstation的虚拟网卡编辑界面。
找到模式是NAT的那张虚拟网卡,点中后,再点下面的NAT Settings… 如下图红圈位置: -
在NAT Settings的标签页中,找到Port Forwarding的内容,按如下图的红圈中的那个Add按钮开始添加:
-
在弹出的标签中,从上到下填写和选择宿主监听的端口、端口协议类型、虚拟机的IP地址、虚拟机监听的端口、描述。设置好后,一路按OK回到虚拟机主界面即可。下图是我虚拟机对外开放HTTP服务的80端口的设置图:
-
需要注意,如此设置的时候,Host port的端口必须是宿主并未监听的端口,否则会出错。
-
设置成功后,使用netstat命令即可看到宿主已经监听了我们填写的端口,监听该端口的程序是vmnat.exe
-
如上设置后,剩下的就是测试了。如果是家庭或是企业,可能还需要在路由器或是防火墙上设置端口映射到宿主
-
经过设置后,外网访问80端口的时候,NAT的Port Forward就会把访问请求转发到虚拟机上,大致如下图:
这个比较难说清楚,不同品牌的路由器、防火墙的设置方式都不一样。我这里给出D-Link DI-624的端口映射的截图:
关于这部分的设置,大家可以去百度和google上搜索看看,有很多的教程。至于防火墙,一般都有详细的说明书或是厂家提供技术支持。
配置好了之后,还需要进行网络测试。
-
得知目前的外网IP地址(固定IP的用户可以胡略此步骤),打开 ip138这个网站就可以知道自己当前的IP地址。
-
请您网络上的朋友帮忙测试。
-
使用网络上一些免费的网站状态检测服务,这可以从搜索引擎上找到不少。
结束语,时隔两年,炜煜自己电脑中使用的虚拟机已经从VMware Workstation6变为VMware Workstation7了。不少朋友问的就是VMwareWorkstation7的虚拟网卡设置,其实大家仔细看图的话,会发现虚拟网卡设置这部分变化不大。另外,这篇文章写得很粗浅,目的是为了帮助大家在最短的时间内实现目标,可以说只是一个治标的方法。但是炜煜个人能力有限,工作重心也不是这个,所以面对深层次的东西就无能为力了。如果对于文章内容有任何想法,欢迎留言或是发邮件讨论。
3大话虚拟机上网之NAT篇
虚拟机之家Virtual原创 转载请注明出处 谢谢
在论坛上混了那么长时间,发现问的最多的问题还是虚拟机如何上网。
我就个人对虚拟机的理解,把虚拟机上网最方便的也是最难理解的NAT方式和大家一起聊聊,因为是大话NAT,所以说的会罗嗦点,不过主要是照顾新人。:)
老鸟就赶快飞吧 呵呵
先说一点别的,做为引子
假设现在R老师带3个班的学生,分别为a班、 b班、 c班 。现在就出现了两个交流方式:
第1种交流方式:
本班内交流,比如说a班的一个同学想和另一个同学交流,就可以直接在班里喊那个同学的名字。这个就向计算机内的同一个网段的计算机的交流方式-广播。
第2种交流方式:
班与班之间的学生交流,这个时候在a班里面直接喊b班同学名字就没作用了,因为隔着墙,根本就听不见。这个类似不同网段的计算机没办法通信。这个时候两个班的学生要是想交流必须要通过R老师来做传话人。这个类似于网络里的网关。a班的同学把要说的话告诉R老师,R老师把话转告给b班的同学。
我们把这个例子对接到网络学习里,方便大家理解
学校=互联网
班=网段
学生=计算机
老师(传话人)=虚拟的NAT服务器
不好意思 女朋友叫我上街 ,先写到这,下次接着写
还有什么虚拟机的知识, 要我大话的,请在下面跟贴说明
对不起大家了,我回来晚了 接着上次的写
虚拟机用NAT上网的方式和我举例子中的第2种交流方式很相似。
桥接则和第1种交流方式非常吻合。
比如说你安装了虚拟系统并且选择是Nat模式,虚拟的NAT服务器就象R老师的作用一样。负责虚拟机(a班的同学)和因特网上的计算机(c班的同学)通信。
画个小图1给大家说明
有了图就说的方便多了
nat的上网方式的特点
1.主机的虚拟网卡不用设置(默认为自动获得)
2.虚拟系统中的网卡不用设置(默认为自动获得)
这条两个实现的前提是虚拟的dhcp服务器正常工作 给大家图2
在看一个关于nat的图3
看了这个3个图后,大家基本上也就明白了。但是这样没有说服力,下面我再来做个解释
其中192.168.2.2相当与R老师的地位,在图1就标有虚拟NAT服务器
图3规定了NAT的ip地址。
主机的ipconfig 图4
虚拟机的ipconfig图5
现在用一个命令trcert 说明虚拟机上网是通过NAT服务器 192.168.2.2
Tracert命令用来显示数据包到达目标主机所经过的路径,并显示到达每个节点的时间。命令功能同Ping类似,但它所获得的信息要比Ping命令详细得多,它把数据包所走的全部路径、节点的IP以及花费的时间都显示出来。该命令比较适用于大型网络。
我们现在在虚拟机上trcert 百度 看看虚拟机的数据包书如何到达baidu.com
看看里面有没有192.168.2.2(虚拟的nat服务器)
图6
VMware虚拟网络相关知识
1.虚拟网桥
通过虚拟网桥把虚拟机的虚拟网卡连接到宿主机的物理网卡上。通过它可以将虚拟机连接到宿主机所在的外部网络。如果宿主机上不止是一个物理网卡时,采用定制配置,创建另外的虚拟网桥用来连接宿主机上的其它物理上网卡。
2.宿主机虚拟网卡
安装完虚拟机后,我们右键“网上邻居” /属性 /在打开的“网络连接”窗口里看到两块网卡,默认情况下“VMware Network Adapter VMnet1”供仅宿主机网络使用;“VMware NetworkAdapter VMnet8”供NAT网络使用。右键这两个网卡的属性,我们可以在常标签下看到虚拟网卡的全称。当然我们也可以在宿主机的“命令提示符”中输入ipconfig获知宿主机虚拟网卡的详细信息
3.NAT设备
NAT是网络地址翻译的简写。当宿主机在外部只拥有一个IP时,利用NAT设备,虚拟机可以连接到该外部网络,我们打开宿主机上的“管理工具”里的“服务”,可以发现多出了一个“VMware NAT Service”服务,说明系统已经将它安装为系统服务。
4.VMware DHCP服务
DHCP是动态主机配置协议简写。DHCP服务为没有桥接到外部网络的虚拟机提供IP地址。采用桥接网络模式的虚拟机IP地址就是直接由宿主机所在外部网络的DHCP服务器提供的。
[原创]VMware提供的虚拟网卡图示
一些初学者对VMware虚拟机中的桥接、VMnet1(仅host方式)、VMnet8(NAT方式),我把VMware各网卡的意义做了三张图,希望对大家有所帮助。
显示不全,请大家另存观看。
4 vmware虚拟机nat模式共享上网
至此 虚拟机教程描述就到这里
本文出自 “坚持就是胜利” 博客,请务必保留此出处http://lilinji.blog.51cto.com/5441000/1264307
来源:http://lilinji.blog.51cto.com/5441000/1264307