首先要普及一下关于virtualbox的知识,网上也有很多讲解的,我这里大概说一下。
VirtualBox的提供了四种网络接入模式,它们分别是:
1、NAT 网络地址转换模式(NAT,Network Address Translation)
2、Bridged Adapter 桥接模式
3、Internal 内部网络模式
4、Host-only Adapter 主机模式
1.NAT(网络地址转换模式)
NAT模式是最简单的实现虚拟机上网的方式,你可以这样理解:虚拟主机访问网络的所有数据都是由主机提供的,虚拟主机并不真实存在于网络中(即虚拟主机没有真正的IP地址),主机与网络中的任何机器都不能查看和访问到虚拟主机。
虚拟机与主机关系:
只能单向访问,虚拟机可以通过网络访问到主机,主机无法通过网络访问到虚拟机。
虚拟机与网络中其他主机的关系:
只能单向访问,虚拟机可以访问到网络中其他主机,其他主机不能通过网络访问到虚拟机。
虚拟机与虚拟机之间的关系:
相互不能访问,虚拟机与虚拟机各自完全独立,相互间无法通过网络访问彼此。
2、Bridged Adapter 桥接模式
桥接模式的模拟度是相当完美。你可以这样理解,它是通过主机网卡,架设了一条桥,直接连入到网络中了。因此,它使得虚拟机能被分配到一个网络中独立的IP,所有网络功能完全和在网络中的真实机器一样。
虚拟机与主机关系: 模拟度也是相当完美。你可以这样理解,它是通过主机网卡,架设了一条桥,直接连入到网络中了。因此,它使得虚拟机能被分配到一个网络中独立的IP,所有网络功能完全和在网络中的真实机器一样。
虚拟机与主机关系:
可以相互访问,因为虚拟机在真实网络段中有独立IP,主机与虚拟机处于同一网络段中,彼此可以通过各自IP相互访问。
虚拟机于网络中其他主机关系:
可以相互访问,同样因为虚拟机在真实网络段中有独立IP,虚拟机与所有网络其他主机处于同一网络段中,彼此可以通过各自IP相互访问。
虚拟机于虚拟机关系:
可以相互访问,原因同上。
3.Internal模式
内网模式,顾名思义就是内部网络模式,虚拟机与外网完全断开,只实现虚拟机于虚拟机之间的内部网络模式。
虚拟机与主机关系:
不能相互访问,彼此不属于同一个网络,无法相互访问。
虚拟机与网络中其他主机关系:
不能相互访问,理由同上。
虚拟机与虚拟机关系:
可以相互访问,前提是在设置网络时,两台虚拟机设置同一网络名称。
4.Host-only Adapter模式
主机模式,这是一种比较复杂的模式,需要有比较扎实的网络基础知识才能玩转。可以说前面几种模式所实现的功能,在这种模式下,通过虚拟机及网卡的设置都可以被实现。
我们可以理解为Vbox在主机中模拟出一张专供虚拟机使用的网卡,所有虚拟机都是连接到该网卡上的,我们可以通过设置这张网卡来实现上网及其他很多功能,比如(网卡共享、网卡桥接等)。
虚拟机与主机关系
默认不能相互访问,双方不属于同一IP段,host-only网卡默认IP段为192.168.56.X 子网掩码为255.255.255.0,后面的虚拟机被分配到的也都是这个网段。通过网卡共享、网卡桥接等,可以实现虚拟机于主机相互访问。
虚拟机与网络主机关系
默认不能相互访问,原因同上,通过设置,可以实现相互访问。
虚拟机与虚拟机关系
默认可以相互访问,都是同处于一个网段。
参考资料:http://www.douban.com/group/topic/15558388/
通过上面的讲解,我们可以配合这集中网络模式来配置成我们想要的效果。这里,我们主要讲解怎样实现虚拟主机与主机,虚拟主机与外网之间的互通。
我目前的状态是:
主机:
名称:fedora 19 ip地址:192.168.1.107 子网掩码(netmask):255.255.255.0 网关(gateway):192.168.1.1
查看主机的前三项信息,在linux下用命令ifconfig,在windows下用命令ipconfig,网关在linux下用命令netstat -r
虚拟主机:
名称1:win7 名称2:fedora8
1.首先要让虚拟主机能够上网,这里用virtualbox最简单的网络模式,即NAT模式。在NAT模式下,只要主机能够上网,那么虚拟主机也能够上网。因此我们首先确保主机已经联网了。在主机联网的情况下,我们开始配置
1.1点击virtualbox的设置(setting),点击网络(network),在Adapter1中的Attached to(网络模式)选择NAT,如下图:
1.2启动虚拟主机(我启动的是fedora 8),打开终端,输入ping 192.168.1.107(ping 主机)发现能够ping通(如果不通,说明你的主机没有联网),而在主机中ping 虚拟机则ping不通,这就证明了上面我们讲解NAT模式的特点。但是,现在能够保证主机和虚拟机都能够上网,只是主机和外网访问不到虚拟机而已。
2.下面的工作就是使得主机和外网能够访问到虚拟主机,根据上面讲的四种模式,桥接模式是最适合的。所以,我们用桥接模式实现这个效果。
2.1关闭你的虚拟机,重新打开virtualbox->setting->network,打开Adapter2,网络模式(attached to)选择Bridged Adapter(桥接模式),名称(name)选择能够联网的那块网卡,比如我现在的主机是通过WLAN上网,所以网卡为wlp7so,然后点击确定,如下图所示:
2.2启动虚拟主机,打开网络设置(network configuration),在devices选项卡中可以看到两块网卡eth0和eth1,可能eth1没有激活,这时候只要激活一下就好了。如下图所示:
2.3其中的eth0是我们NAT模式虚拟出来的网卡,而eth1就是我们用桥接模式虚拟出来的网卡了。双击eth1,进入编辑对话框,选择手动设置IP地址、子网掩码和网关,点击确定。如下图所示:
其中要注意的是,ip地址要和主机的ip地址在同一个网段中,即前面三段(192.168.1)要与主机相同,最后一个数建议比主机的数小或者大1或2,比如我的主机ip地址为192.168.1.107,所以这里我设置我的ip地址为192.168.1.105,而网关和子网掩码要与主机相同,请用文章开始处给出的讲解查看主机信息。
2.4重新启动虚拟主机,然后再打开终端,ping主机能够ping通(在前面NAT模式的时候就已经验证了),再在主机中ping虚拟主机,也能够ping通,这样,我们就完成了内外网互通的效果了。