正文
VirtualBox的四种网络连接方式
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
VirtualBox中有4中网络连接方式:
a. NAT 网络地址转换模式(Network Address Translation)
b. Bridged Adapter 桥接模式
c. Internal 内部网络模式
d. Host-only Adapter 主机模式
VMWare中有三种,其实他跟VMWare 的网络连接方式都是一样概念,只是比VMWare多了Internal方式。
要让自己(或别人)理解深刻,方法就是做比较和打比方,比较之间的不同和相同,拿熟知的事物打比方。先来一张图,通过这张图就很容易看出这4种方式的区别:
一、四种模式介绍
1、NAT
NAT:Network Address Translation,网络地址转换
NAT模式是最简单的实现虚拟机上网的方式,你可以这样理解:
Guest访问网络的所有数据都是由主机提供的,Guest并不真实存在于网络中,主机与网络中的任何机器都不能查看和访问到Guest的存在。
Guest可以访问主机能访问到的所有网络,但是对于主机以及主机网络上的其他机器,Guest又是不可见的,甚至主机也访问不到Guest。
虚拟机与主机的关系:只能单向访问,虚拟机可以通过网络访问到主机,主机无法通过网络访问到虚拟机。
虚拟机与网络中其他主机的关系:只能单向访问,虚拟机可以访问到网络中其他主机,其他主机不能通过网络访问到虚拟机。
虚拟机与虚拟机的关系:相互不能访问,虚拟机与虚拟机各自完全独立,相互间无法通过网络访问彼此。
IP:10.0.2.15
网关:10.0.2.2
DNS:10.0.2.3
一台虚拟机的多个网卡可以被设定使用 NAT, 第一个网卡连接了到专用网 10.0.2.0,第二个网卡连接到专用网络 10.0.3.0,等等。默认得到的客户端ip(IP Address)是10.0.2.15,网关(Gateway)是10.0.2.2,域名服务器(DNS)是10.0.2.3,可以手动参考这个进行修 改。
NAT方案优缺点:
笔记本已插网线时:虚拟机可以访问主机,虚拟机可以访问互联网,在做了端口映射后(最后有说明),主机可以访问虚拟机上的服务(如数据库)。
笔记本没插网线时:主机的“本地连接”有红叉的,虚拟机可以访问主机,虚拟机不可以访问互联网,在做了端口映射后,主机可以访问虚拟机上的服务(如数据库)
笔记本没插网线时:主机的“本地连接”有红叉的,虚拟机可以访问主机,虚拟机不可以访问互联网,在做了端口映射后,主机可以访问虚拟机上的服务(如数据库)
2、Bridged Adapter(网桥模式)
网桥模式,你可以这样理解:
它是通过主机网卡,架设了一条桥,直接连入到网络中了。因此,它使得虚拟机能被分配到一个网络中独立的IP,所有网络功能完全和在网络中的真实机器一样。
网桥模式下的虚拟机,你把它认为是真实计算机就行了。
虚拟机与主机的关系:可以相互访问,因为虚拟机在真实网络段中有独立IP,主机与虚拟机处于同一网络段中,彼此可以通过各自IP相互访问。
虚拟机于网络中其他主机的关系:可以相互访问,同样因为虚拟机在真实网络段中有独立IP,虚拟机与所有网络其他主机处于同一网络段中,彼此可以通过各自IP相互访问。
虚拟机与虚拟机的关系:可以相互访问,原因同上。
IP:一般是DHCP分配的,与主机的“本地连接”的IP 是同一网段的。虚拟机就能与主机互相通信。
笔记本已插网线时:(若网络中有DHCP服务器)主机与虚拟机会通过DHCP分别得到一个IP,这两个IP在同一网段。 主机与虚拟机可以ping通,虚拟机可以上互联网。
笔记本没插网线时:主机与虚拟机不能通信。主机的“本地连接”有红叉,就不能手工指定IP。虚拟机也不能通过DHCP得到IP地址,手工指定IP后,也无法与主机通信,因为主机无IP。
这时主机的VirtualBox Host-Only Network 网卡是有ip的,192.168.56.1。虚拟机就算手工指定了IP 192.168.56.*,也ping不能主机。
3、Internal(内网模式)
内网模式,顾名思义就是内部网络模式:
虚拟机与外网完全断开,只实现虚拟机于虚拟机之间的内部网络模式。
虚拟机与主机的关系:不能相互访问,彼此不属于同一个网络,无法相互访问。
虚拟机与网络中其他主机的关系:不能相互访问,理由同上。
虚拟机与虚拟机的关系:可以相互访问,前提是在设置网络时,两台虚拟机设置同一网络名称。如上配置图中,名称为intnet。
IP:VirtualBox的DHCP服务器会为它分配IP ,一般得到的是192.168.56.101,因为是从101起分的,也可手工指定192.168.56.*。
笔记本已插网线时:虚拟机可以与主机的VirtualBox Host-Only Network 网卡通信
这种方案不受主机本地连接(网卡)是否有红叉的影响。
4、Host-only Adapter(主机模式)
主机模式,这是一种比较复杂的模式,需要有比较扎实的网络基础知识才能玩转。可以说前面几种模式所实现的功能,在这种模式下,通过虚拟机及网卡的设置都可以被实现。
我们可以理解为Guest在主机中模拟出一张专供虚拟机使用的网卡,所有虚拟机都是连接到该网卡上的,我们可以通过设置这张网卡来实现上网及其他很多功能,比如(网卡共享、网卡桥接等)。
虚拟机与主机的关系:默认不能相互访问,双方不属于同一IP段,host-only网卡默认IP段为192.168.56.X 子网掩码为255.255.255.0,后面的虚拟机被分配到的也都是这个网段。通过网卡共享、网卡桥接等,可以实现虚拟机于主机相互访问。
虚拟机与网络主机的关系:默认不能相互访问,原因同上,通过设置,可以实现相互访问。
虚拟机与虚拟机的关系:默认可以相互访问,都是同处于一个网段。
虚拟机访问主机,用的是主机的VirtualBox Host-Only Network网卡的IP:192.168.56.1 ,不管主机“本地连接”有无红叉,永远通。
主机访问虚拟机,用是的虚拟机的网卡3的IP: 192.168.56.101 ,不管主机“本地连接”有无红叉,永远通。
虚拟机访问互联网,用的是自己的网卡2, 这时主机要能通过“本地连接”有线上网,(无线网卡不行)
补充:
我刚装上VirtualBox的时候所有的网络连接方式都试过了,但虚拟机和虚拟机之间就是不能相互访问,Ping都Ping不通,我在想难道VirtualBox的网络设置有这么复杂吗,后来想到是不是Windows XP的防火墙的问题,关闭之,一切就正常了!
二、灵活应用(模拟出来一个一台主机,监控一个局域网上网情况的网络环境)
通过对以上几种网络模式的了解,我们就可以灵活运用,模拟组建出我们所想要的任何一种网络环境了。
首先我开启了两台虚拟机vhost1与vhost2,当然如果硬件允许,我同样可以再增加vhost3、vhost4......
所有的vhost我都设置成internat内网模式,网络名称为intnal,网关为192.168.56.100,意思就是通过 192.168.56.100网卡上网。
其中有一台vhost1我设置为双网卡,一张为内网模式(192.168.56.100),一张为网桥模式 (192.168.1.101)。
两张网卡设置双网卡共享上网,虚拟机之间为局域网,其中有一台虚拟机vhost1通过与外网相连,所有局域网中的虚拟机又通过vhost1来实现上外网。
这样vhost1就可以监控整个虚拟机局域网上网情况了。
其中有一台vhost1我设置为双网卡,一张为内网模式(192.168.56.100),一张为网桥模式 (192.168.1.101)。
两张网卡设置双网卡共享上网,虚拟机之间为局域网,其中有一台虚拟机vhost1通过与外网相连,所有局域网中的虚拟机又通过vhost1来实现上外网。
这样vhost1就可以监控整个虚拟机局域网上网情况了。
三、NAT 设置端口映射
你可以设置一个虚拟机的服务(比如 WEB 服务),通过使用命令行工具 VboxManage 代理。你需要知道虚拟机的服务使用哪个端口,然后决定在主机上使用哪个端口(通常但不总是想要使虚拟机和主机使用同一个端口)。在主机上提供一个服务需要 使用一个端口,你能使用在主机上没有准备用来提供服务的任何端口。一个怎样设置新的 NAT 例子,在虚拟机上连接到一个 ssh 服务器,需要下面的三个命令:
VBoxManage setextradata 'Linux Guest' 'VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/Protocol' TCP
VBoxManage setextradata 'Linux Guest' 'VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/GuestPort'
VBoxManage setextradata 'Linux Guest' 'VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/HostPort'
说明:VboxManage 是一个命令行程序,请查询你的 VirtualBox 安装目录,'Linux Guest' 是虚拟主机名。guestssh 是一个自定义的名称,你可以任意设置,通过上面的三个命令,把虚拟机的 22 端口 转发到主机的 2222 端口。
又比如,我在虚拟机 debian 上安装了 apache2 服务器,使用 80 端口,映射到主机的 80 端口。使用下面的命令。
'C:/Program Files/innotek VirtualBox/VBoxManage.exe' setextradata 'debian' 'VBoxInternal/Devices/pcnet/0/LUN#0/Config/huzhangsheng/Protocol' TCP
'C:/Program Files/innotek VirtualBox/VBoxManage.exe' setextradata 'debian' 'VBoxInternal/Devices/pcnet/0/LUN#0/Config/huzhangsheng/GuestPort'
'C:/Program Files/innotek VirtualBox/VBoxManage.exe' setextradata 'debian' 'VBoxInternal/Devices/pcnet/0/LUN#0/Config/huzhangsheng/HostPort'
注意:要使设置生效,请关掉 VirtualBox 再运行虚拟机,我把 VirtualBox 安装在 winxp 上,在虚拟机中安装 debian 4.02r ,虚拟机名是 debian ,并安装了 apache2 php5 mysql-server ,在主机上用IE浏览 http://localhost,成功转发到虚拟机 debian 的 apache2 web 服务器上。
四、图解
NAT
这种方式下,虚拟机的网卡 连接到宿主的 VMnet8 上。此时系统的 VMWare NAT Service 服务就充当了路由器的作用,负责将虚拟机发到 VMnet8 的包进行地址转换之后发到实际的网络上,再将实际网络上返回的包进行地址转换后通过 VMnet8 发送给虚拟机。VMWare DHCP Service 负责为虚拟机提供 DHCP 服务。
这种方式下,虚拟机的网卡 连接到宿主的 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地址会自动更新,不需要重新设置。
五、VirtualBox配置双网卡,实现内外网络互访问
环境:
宿主机操作系统 Windows XP sp3
虚拟机软件 VirtualBox
虚拟机操作系统 Fedora(Linux)
1、使虚拟电脑Fedora能够上网
原理:
NAT(网络地址转换模式)
使用NAT模式,就是让虚拟系统借助NAT(网络地址转换)功能,通过宿主机器所在的网络来访问公网。也就是说,使用NAT模式可以实现在虚拟系统里访问互联网。NAT模式下的虚拟系统的TCP/IP配置信息是由VMnet8(NAT)虚拟网络的DHCP服务器提供的,无法进行手工修改,因此虚拟系统也就无法和本局域网中的其他真实主机进行通讯。采用NAT模式最大的优势是虚拟系统接入互联网非常简单,你不需要进行任何其他的配置,只需要宿主机器能访问互联网即可。
如果你想利用VMWare安装一个新的虚拟系统,在虚拟系统中不用进行任何手工配置就能直接访问互联网,建议你采用NAT模式。
步骤:
在VirtualBox中设置网络连接,启用NAT连接模式。
启动Fedora,发现网络成功连接上了,运行FireFox,可以成功登陆Fedora网页。
这里我们查看一下Fedora的IP和Windows的网络配置,并且互相ping。
Fedora可以ping到Windows
但是Windows不能ping到Fedora
这个也好理解,因为NAT的网络连接模式就是虚拟机通过宿主机的网络来访问互联网,那么虚拟机当然知道宿主机的网络地址。但是反过来,Windows就不清楚到达10.0.2.15地址要如何经过路由了。
在这里要注意一下,Fedora的IP地址10.0.2.5是通过DHCP自动分配的。
2、使虚拟电脑Fedora能够与宿主机互联
这一部分的目标就是实现Windows能够ping通Fedora。
原理:
bridged(桥接模式)
在这种模式下,VirtualBox虚拟出来的操作系统就像是局域网中的一台独立的主机,它可以访问网内任何一台机器。在桥接模式下,你需要手工为虚拟系统配置IP地址、子网掩码,而且还要和宿主机器处于同一网段,这样虚拟系统才能和宿主机器进行通信。同时,由于这个虚拟系统是局域网中的一个独立的主机系统,那么就可以手工配置它的TCP/IP配置信息,以实现通过局域网的网关或路由器访问互联网。
使用桥接模式的虚拟系统和宿主机器的关系,就像连接在同一个Hub上的两台电脑。想让它们相互通讯,你就需要为虚拟系统配置IP地址和子网掩码,否则就无法通信。
如果你想利用VirtualBox在局域网内新建一个虚拟服务器,为局域网用户提供网络服务,就应该选择桥接模式。
步骤:
在VirtualBox中设置网络连接,开启Bridge Adapter连接模式
启动Fedora,发现多了一个未配置的网卡eht1
为该网卡添加一个网络配置,手动输入IP地址、子网掩码和网关(与宿主机要在同一网段)
设置好后查看网络信息,并ping宿主机(这个在上一部分就实现了)
宿主机ping虚拟机
成功ping通
3、补充:第三种连接方式
在这里必须提一点,就是如果172.16.35.237这个IP地址已经被其他计算机使用怎么办,为了解决这种IP地址冲突的情况,我们来进一步了解host-only连接模式。
原理:
host-only(主机模式)
在某些特殊的网络调试环境中,要求将真实环境和虚拟环境隔离开,这时你就可采用host-only模式。在host-only模式中,所有的虚拟系统是可以相互通信的,但虚拟系统和真实的网络是被隔离开的。
提示:
在host-only模式下,虚拟系统和宿主机器系统是可以相互通信的,相当于这两台机器通过双绞线互连。
在host-only模式下,虚拟系统的TCP/IP配置信息(如IP地址、网关地址、DNS服务器等),都是由VMnet1(host-only)虚拟网络的DHCP服务器来动态分配的。
如果你想利用VirtualBox创建一个与网内其他机器相隔离的虚拟系统,进行某些特殊的网络调试工作,可以选择host-only模式。
步骤:
在VirtualBox中设置网络连接,启用host-only连接模式。
启动Fedora,发现多了一个已配置的网卡eht2
因为eth1和eth2的IP地址都是172.16.35.237,在Windows端ping的时候是不会成功的。它搞不清楚是哪个了。
现在为该网卡添加一个网络配置,设置在和VirtualBox的网关192.168.56.1保持一致的网段。
弄好后的网络配置信息为:
设置好后,可以在Windows端ping地址172.16.35.237又成功了。再ping新的IP地址也成功了。
小提示:
在Fedora窗口界面进行网络配置的添加或删除时,可能系统并没有及时更新网络配置信息,可以在终端使用命令/etc/rc.d/init.d/network restart来重启网络连接。
转载:http://penpenguanguan.com/997.html
http://blog.csdn.net/wyzxk888/article/details/5992443
http://www.2cto.com/os/201205/133370.html