[转载]VMWare网络连接透析
http://blog.csdn.net/struggleyb/article/details/1102214
以前在学校,VMWare里面的Gentoo Linux是采用network bridge 的方式和windows共享一个物理网卡上网,这次回家,将电脑搬了回来,改成了adsl上网,结果发现Linux居然无法访问网络了,我的Gentoo Linux如果没有网络那就等于废了,不能emerge,Gentoo的优势何在啊?逼的我疯狂google,查阅了不少VMWare的文档,终 VMWare的网络问题搞定了。其实,这已经是一个月前的事情了,直到现在才找了点时间,把它写出来:
三种网络方式
BRIDGED:
bridge就是“桥”的意思,说起桥接,就不能不说局域网。比如我们有两个局域网络,他们的ip段都处于192.168.0.*,同时,我们希望把这两个网络链接起来,这中情况下,我们就可以采用桥接。这个时候,“桥”就是一个主机,这个机器拥有两块网卡,分别处于两个局域网中,同时在“桥”上,运行着程序,让局域网A中的所有数据包原封不动的流入B,反之亦然。这样,局域网A和B就无缝的在链路层连接起来了(当然要保证两个局域网没有冲突的 IP)。这就是桥的作用,在链路层无缝的沟通两个局域网。
而VMWare的桥也是同样的道理,只不过,本来作为硬件的一块网卡,现在由VMWare软件虚拟而来罢了!当采用桥接时,VMWare会虚拟一块网卡和真正的物理网卡就行桥接,这样,发到物理网卡的所有数据包就到了VMWare虚拟机,而由VMWare发出的数据包也会通过桥从物理网卡的那端发出,这样,如果物理网卡可以上网,那么桥接的软网卡也没有问题了,这就是桥接上网的原理了。
在桥接时,VMWare网卡和物理网卡应该处于同意ip网段,所以在虚拟机中ping物理网卡ip,或者在主机总ping虚拟机网卡ip,都可以ping通。
NAT:
nat就是network address translate的简称。网络地址转换,这个技术是为了让象192.168.*.*这样的私有ip段能够访问internet而开发的。私有ip段,可以由任何公司和个人使用,所以世界上有无数电脑使用了192.168.0.111这样的地址,而这个地址绝对不能出现在internet上,因为这肯定会造成路由的失败。但是,ip地址的稀缺让我们必须采用这种共享ip的方案,同时还要允许这些机器访问internet。这样的前提下,NAT就应运而生了。
NAT技术应用在internet网关和路由器上,比如192.168.0.111这个地址要访问internet,它的数据包就要通过一个网关或者路由器,而网关或者路由器拥有一个能访问internet的ip地址,这样的网关和路由器就要在收发数据包时,对数据包的IP协议层数据进行更改(即 NAT),以使私有网段的主机能够顺利访问internet。
我想到的一个最典型的例子,就要算我的大学宿舍了。宿舍内部网段192.168.1.× ,通过路由器进入校园局域网10.10.110.×,然后通过学校网关,进入internet。这个过程中,宿舍的路由器做了一次NAT,而学校的网关又做了一次NAT。
VMWare的NAT上网采用的技术是一样的,它在主机和虚拟机之间用软件伪造出一块网卡,这块网卡和虚拟机的ip处于一个地址段。同时,在这块网卡和主机的网络接口之间进行NAT。虚拟机发出的每一块数据包都会经过虚拟网卡,然后nat,然后由主机的接口发出。
由于在这种条件下,虚拟机和主机不在同一个ip段,但是主机相当于虚拟机的网关,所以虚拟机能ping到主机的ip,但是主机ping不到虚拟机的ip。
Host-only:
顾名思义,这种技术提供的是主机和虚拟机之间的网络互访,而不是虚拟机访问internet的技术。如果,你只想让虚拟机和主机之间有数据交换,而不想让虚拟机访问internet,就要采用这个设置了。
Host-only的条件下,VMWare在真正的Windows系统中,建立一块软网卡。这块网卡可以在网络连接中看到,这块网卡的作用就是使windows看到虚拟机的IP。
由于,这种技术就是将主机和虚拟机通过一个ip段的网卡联系起来,所以双方都可以ping到对方。
实际问题
想明白了以上问题后,再去观察实际中出现的问题,就很好理解了。在学校时候,我采用bridge技术使虚拟机访问internet,而到家之后,采用了adsl上网,却行不通了。
问题就在于,bridge是通过桥接虚拟机的网卡和物理网卡来实现虚拟机访问internet的,这要求实际的物理网卡必须能访问internet。学校采用的是局域网,这一点可以满足,但是家里采用的adsl。adsl上网,采用的pppoe技术,就是在网卡之上建立起一个ppp连接。这种条件下,所有数据包是通过ppp封装之后发出的,虽然也是从网卡发出,但是包的形式就和普通的internet数据包不一样了。也就是说,实际的物理网卡已经没有直接访问internet的能力了。而必须通过ppp接口封装的数据包,才能访问internet。
为了使虚拟机能够访问internet,我们必须使虚拟机的数据包从ppp接口发出去,也就是从adsl的连接发出去。这个时候,NAT技术就可以派上用场了。只要采用NAT,让虚拟机的数据包经由adsl连接来收发,就可以解决上网问题了。理论如此,实际操作如下:
如上图,选择一块虚拟网卡,作为NAT使用的网卡。并且,设置好虚拟网段(要和虚拟机里系统的ip处于一个网段)。
如上图,将设置好的用于NAT的网卡和虚拟机的虚拟网卡绑定。
然后,进入虚拟机,设置IP,就可以上网了。
其实,无论在什么条件下,只要主机能上网,才用NAT技术,都可以使虚拟机访问internet;只有在主机网卡处在一个可以访问internet的局域网中的时候,虚拟机才能通过bridge访问internet;Host-only技术只用于主机和虚拟机互访,于访问internet无关。
[转载]VMWare网络连接透析的更多相关文章
- 【转】VMware网络连接模式—桥接、NAT以及仅主机模式的详细介绍和区别
☞ 本文主要介绍软件『VMware Workstation(虚拟机)』的相关内容:VMware网络连接模式—桥接.NAT以及仅主机模式的详细介绍和区别. 其下列版本/分支可以参考本文: 全部版本/分支 ...
- VMWare 网络连接模式(bridged、NAT、host-only)详解
转自VMWare 网络连接模式(bridged.NAT.host-only)详解 host-only 在某些特殊的网络调试环境中,如何要求将真实环境和虚拟环境隔离开,这时你就可采用host-only模 ...
- VMware网络连接模式—桥接、NAT以及仅主机模式的详细介绍和区别
在使用VMware Workstation(以下简称:VMware)创建虚拟机的过程中,配置虚拟机的网络连接是非常重要的一环,当我们为虚拟机配置网络连接时,我们可以看到如下图所示的几种网络连接模式:桥 ...
- vmware 网络连接
解决VMware nat service等服务不能启动 虚拟机如何设置网络连接来上网?
- VMware网络连接模式——桥接模式、NAT模式以及仅主机模式的介绍和区别
在使用VMware Workstation(以下简称:VMware)创建虚拟机的过程中,配置虚拟机的网络连接是非常重要的一环,当我们为虚拟机配置网络连接时,我们可以看到如下图所示的几种网络连接模式:桥 ...
- VMware网络连接失败
假如你碰到了VMware 网络被断开, 明明已经分配了适配器, 客户端却显示网络断开没有连接. 可用恢复默认的方法重置所有网卡及服务. 进主工具首页.点击: 虚拟网络编辑器,然后点击下面的恢复默认. ...
- VMware网络连接失败解决方法
假如你碰到了VMware 网络被断开,明明已经分配了适配器,客户端却显示网络断开没有连接. 一. 可用恢复默认的方法重置所有网卡及服务. 如图片操作: 进主工具首页.点击: 虚拟网络编辑器 然后点击下 ...
- VMware网络连接 桥接、NAt、host-only模式
如果你想利用VMWare安装虚拟机,或想创建一个与网内其他机器相隔离的虚拟系统,进行特殊的调试工作.此时,对虚拟系统网络连接模式的选择就非常重要了.如果你选择的工作模式不正确,就无法实现上述目的,也就 ...
- VMware网络连接模式(桥接、NAT以及仅主机模式的详细介绍和区别)
VMware 桥接模式 VMware桥接模式,也就是将虚拟机的虚拟网络适配器与主机的物理网络适配器进行交接,虚拟机中的虚拟网络适配器可通过主机中的物理网络适配器直接访问到外部网络(例如图中所示的局域网 ...
随机推荐
- AndroidUI 视图动画-缩放动画效果 (ScaleAnimation)
放动画效果,可以使用ScaleAnimation: <Button android:id="@+id/btnScale2" android:layout_width=&quo ...
- (转) iOS深入学习(Block全面分析)
本文翻译自苹果的文档,有删减,也有添加自己的理解部分. 如果有Block语法不懂的,可以参考fuckingblocksyntax,里面对于Block 为了方便对比,下面的代码我假设是写在ViewCon ...
- C# NameValueCollection集合 .
案例: NameValueCollection nameValueCollection = Request.Params;//获得连接地址中的所有参数 //获取各个参数,eg: ...
- Android读写JSON格式的数据之JsonWriter和JsonReader
近期的好几个月都没有搞Android编程了,逐渐的都忘却了一些东西.近期打算找一份Android的工作,要继续拾起曾经的东西.公司月初搬家之后就一直没有网络,直到今日公司才有网络接入,各部门才開始办公 ...
- CSS中链接文本为图片时的问题(塌陷、对应的图片建立倒角的问题)
我在做Javascript DOM编程艺术的时候,在12章自己做练习时遇到了一个问题,<a>的内容<img>从<a>的盒子中溢出.代码如下: <a href= ...
- oracle ORA-00913: 值过多
--oracle中查看表是否被锁 查看表是否被锁 SELECT /*+ rule*/ a.sid, b.owner, object_name, object_type FROM v$loc ...
- php不同形式的实现a-z的26个字母的输出
直接上代码: for($i=ord('a'), $n=ord('z'); $i<=$n; $i++){ echo chr($i),PHP_EOL; } echo PHP_EOL; $char = ...
- 利用border和伪类画出三角形 ps:好久没写博客了。。。
有一个半月没有写博客了,这段时间,小哥我经历了自入行前端最为黑暗的时期,迷茫,空虚,不想写代码,不想做研究了.连打游戏都没有兴趣,如同行尸走肉一般.还好,毕业论文的初稿完成后,整个时间段最恶心最难熬的 ...
- hdu 5726 GCD 倍增+ 二分
题目链接 给n个数, 定义一个运算f[l,r] = gcd(al, al+1,....ar). 然后给你m个询问, 每次询问给出l, r. 求出f[l, r]的值以及有多少对l', r' 使得f[l, ...
- response妙用
1.弹框提示信息 response.getWriter().print("<script>alert('文件不存在或已删除!');</script>"); ...