1、虚拟机常见的上网模式详细解析
虚拟机就是利用真实机的环境用软件的方式模拟成类似真实机系统的一个软件,现在主流的有微软的虚拟机,有vmare,orcale virtualBOx(orcale virtualBOx原名叫Sun virtualBOx 前不久刚被orcale公司收购所以改名为orcale virtualBOx)那么不管是那种虚拟机,在虚拟机软件都内置了几种虚拟系统的上网方式,一般有三种桥接(Bridged) nat(地址转换) host-only(单独网络),那么这三种虚拟机的联网方式到底都是什么意思呢?
我们老百姓家庭用的网络最常见的就是从 电信 ,联通,移动等这些牵线来的,也就是我们的ADSL拨号上网,那么这种方式做恼火的就是您的一条ADSL线路只能提供一台电脑上网,如果您要多台电脑上网的话,我们就需要购买一个路由器,这样实现几台电脑上网的目的,结构图和下图类似
(1)nat(地址转换)
1、什么是nat?nat就是网络地址转换(NAT,NetworkAddress Translation) 那这又是什么意思呢? 实际上nat 可以作为一个专题来讲,nat将单的说就是讲一个ip地址分成几个ip的方法,广泛用于广域网,那么我们虚拟机使用nat是什么意思呢?怎么实现的呢?
好的下面我们来看一张图:
上面就是我们生活中最常见的2中上网方式,以及nat的图示,上图中PC2PC3 为我们的真实机,娃儿PC4PC5为分别是我们PC2PC3 上的虚拟机那么如果您给您的虚拟机PC4PC5设置了NAT网络,那么您的虚拟机PC4PC5将使用真实机PC2PC3的ip地址,但是有不是PC2PC3的ip地址,因为PC2PC3将他们的地址nat了也就是转换了比如说,PC2ip 地址为192.168.1.88 通过nat以后假设地址为 10.2.15.2~255,那么建立在pc2上的虚拟机的pc4的ip地址就会在10.2.15.2---10.2.15.255 选择一个作为自己的ip地址。
此时我们的真实机和虚拟机是可以相互通讯的,那么我们的虚拟机能上网吗通过nat的方式? 大家看了上面的话就知道一些眉目了,我们现在都知道了,虚拟机如果通过nat的方式没那么他的ip地址是有真实机哪里通过转换而来的,也就是说,真实机的ip地址和虚拟机的ip地址映射的关系,虚拟机要上网那么他的上网步骤是这样的:
假设虚拟机的ip是10.2.15.8真实机的ip是192.168.18.3,那么虚拟机要上网比如我们去访问www.51safer.com,首先会用虚拟机自己的ip(10.2.15.8)去访问www.51safer.com,但是是通过我们的主机来上网的,前面不是说了吗,虚拟机的地址是主机转换而来的,那么他要访问,还必须经过主机再次转换,即讲10.2.15.8转换成真实机的ip地址(192.168.18.3)去访问www.51safer.com,但实际上我是通过路由器来上网的,我们的真实机会把这个数据包交给路由器,然后路由器通转换为外网ip去访问我们的网站www.51safer.com
2、当虚拟机访问网站www.51safer.com的时候:
虚拟机发布访问www.51safer.com请求(10.2.15.8)---》经过真实机把10.2.15.8转换为192.168.18.3------》-----》路由器将192.168.18.3转换外外网ip211.167.97.67提交访问www.51safer.com的请求数据包
至于直接通过猫单独上网的用户,如果您的虚拟机使用nat方式上网那么过程如下
虚拟机发布访问www.51safer.com请求(10.2.15.8)---》经过真实机把10.2.15.8转换为外网ip211.167.97.67------》提交访问www.51safer.com的请求数据包
3、大家一定要注意,nat网络不管真实机可不可以联网,虚拟机都可以和我们的主机通讯
,而虚拟机要上网必须满足真实机可以上网!
(2)桥接(Bridged)
1、当虚拟机使用桥接网络以后,实际上这台虚拟机就是一台单独的机器,什么意思呢?这样给大家说,如果您是通过路由器上网,真实机的ip是通过路由器自动获得的ip为192.168.18.8,虚拟机一旦设置了桥接网络模式,那么他也会向我们的上级路由器获取ip地址,这个时候虚拟机的ip地址i就应该和真实机的ip地址在一个网络范围内(同一子网)也会在192.168.18.0/25也就是说当你选择桥接模式以后,虚拟机和真实机是完全不相干的,真实机能上网与否,和虚拟机没有任何关系,虚拟机这个时候在乎的是上级同一子网的设备有没有自动分配ip的功能,至于真实机不能上网,但是他依然可以,是没有影响的明白了吗?注意上不许要满足上级的设备有自动分配ip的功能,向我们的路由器就是了,像你上级只是单纯的hub集线器,交换机而没有路由器是不可以的哦,因为虚拟机不能获取ip地址这种网络结构图就是这样的,大家可以看看
如上图所示,PC2PC3是我们的真实机,PC4PC5分别是上面2个真实机上面的虚拟机,那么如果使用桥接网络的话PC4PC5虽然是运行在PC2PC3上面,但实际上他们是直接和路由器进行通讯的,不和主机打交道,唯一有联系的地方就是真实机上运行了这个虚拟机系统软件,借用了真实机的网卡罢了,设想真实机的网卡你罢了,虽然我们再说桥接模式和真实机没有关系,但是这个时候虚拟机连和外面通讯的网卡硬件设备都没了当然也不能上网
2、由于真实机是无效网内ip,所以真实机无法联网,但是虚拟机却完全可以和外界互通!
3、我们通过连线到路由器。会发现,我们的虚拟机的确是直接通过路由器在上网,ip是路由分给他的,和主机没关系
(3)host-only
这种模式就是虚拟机自己完全不能和外界通信,相当于您家里买了一台电脑没有联网是一样的,很简单!
2、在使用虚拟机中常见的问题处理
问题1 如果您家里不是通过路由器上网的而是直接通过ADSL拨号上网的,此时您的真实机已经通过拨号连上了互联网,那么您的虚拟机选择桥接模式后,虚拟机能上网吗?
答:不能!因为我们说了,虚拟机一旦选择桥接,就相当于是和主机完全独立的第二台计算机了,你没有见过一个adsl帐号,能同时在2太电脑上登陆的吧,呵呵
问题2. 我也是用的adsl上网,没有路由器,是直接拨号的,请问怎么样才能满足虚拟机可以上网呢?
答:很简单,虚拟机一旦选择桥接,就相当于是和主机完全独立的第二台计算机,也就是,要么你真实机拨号联网,你用您的真实机上网,要么您就直接在您虚拟机里面建立一个宽带连接,使用虚拟机不拨号上网2者不能同时进行,只能选择一个
问题3 家里adsl上网,没有路由器,是直接拨号的上网的,怎么实现真实机和虚拟机同时上网呢?
答,第一种方案就是你可以买一个路由器,通过路由器上网,这个时候您的虚拟机就可以通过桥接或者nat进行上网连接了
第二种方案就是您的虚拟机直接采用nat上网,这样您的主机照样拨号上网,而虚拟机也可以上网了,推荐这种
问题4 主机不能上网,虚拟机通过nat的方式进行上网,那么虚拟机可以上网吗?
答:不能!应为从上面的访问网站的过程中可以知道,我们的虚拟机要上网,最终还是要把虚拟机的ip通过真实机转化为真实机的ip然后才去联网,试想,如果真实机自己的ip地址都无效不能上网,即使虚拟机的ip转换成了真是的ip,然而真实机的ip不能上网,虚拟机还是不能上网的!
问题5 什么模式下虚拟机可以访问主机的共享资源,或者可以和主机通讯呢?
答.分2种情况,第一种:如果您是通过路由器上网,那么 nat 和 桥接都可以实现真实机和虚拟机的通信
第二种:如果您是用的ADSL拨号上网没有路由器,那么只有nat模式!