以前上学的时候就玩过VMWare,当时感觉这东西太NB了,居然能用软件模拟硬件,太神奇了,当时也就是简单的在VM里安装一个Windows系统,然后再虚拟机环境下上网,仅此而已,而且当时使用的网络连接仅仅是桥连接,其他的NAT和host-only连接方式完全就不知道怎么回事。
前段时间,有一次拿来VMWare玩,这次终于搞明白了它的各种网络连接时怎么回事了。
VMWare安装以后,启动“Virtral Network Editor”程序,选择“Host Virtral Network Mapping”选项卡,
此页列出VMnet0~VMnet9,共10个项目,这10个项目表示VMWare给我们提供的10个虚拟局域网,或者理解成10台交换机,但是这10台交换机之间没有链接,可以认为这10台交换机有无数个网线口,可以连接无数台虚拟计算机。这10个虚拟局域网也有特殊的,其中VMnet0是专门用来和机器的物理网卡做桥接的,也就是说我们的虚拟机要使用桥接的方式访问网络,虚拟机系统中的网卡是连接在VMnet0虚拟网络中,我认为也可以理解长VMnet0就是宿主机器链接的物理局域网。
VMnet1~VMnet9这9个虚拟网络基本相同,不过其中VMnet1和VMnet8也有一些特殊,我们可以看到安装VMware以后,在宿主计算机中会多出来VMware Network Adapter VMnet1和VMware Network Adapter VMnet8两块网卡,这两块网卡分别和VMnet1、VMnet8链接。这样就保证了宿主计算机也接入了虚拟局域网中,宿主计算机可以和VMnet1、VMnet8局域网中的虚拟计算机通信,另外VMnet8还有一些特别,在VMnet8网络中,还有一个虚拟NAT服务节点(可以认为是有VMWare产生的计算机或者路由器),在VMnet8网络中的机器,可以通过这个节点访问宿主计算机所在的物理局域网或者互联网。另外,我们可以根据需要为指定的VMnet中增加DHCP服务。
在以上内容都理解的情况下,我们就可以配置我们的虚拟局域网了:
网桥链接,网桥链接是最简单的链接,创建虚拟机的时候,只需要指定网卡的链接方式为网桥链接,或者指定和VMnet0链接,就可以了,然后虚拟的系统就和宿主一同处于对等的网络环境中,可以自己指定IP或者由物理局域网中的DHCP分配IP。
Host-only链接,如果我们的虚拟系统不需要访问互联网,只提供简单的局域网服务,并且宿主计算机也要链接到虚拟网络中,我们就可以使用host-only链接,或者配置虚拟机时指定网卡连接到VMnet1网络中即可。这种网络环境中,所有的虚拟机和宿主计算机他们之间可以实现通信,但是所有的虚拟机不能通过宿主机访问互联网。
NAT链接,如果我们的虚拟系统需要访问互联网,而又不能通过物理局域网获取IP,我们就可以使用NAT链接的网络,这个虚拟网络和host-only虚拟网络基本一样,只是这个网络中多了一个NAT服务,虚拟网络中的虚拟计算机可以通过NAT服务这个节点(相当于一台机器或一个路由,有独立的IP)访问互联网。
我家里的上网方式是使用路由器通过ADSL访问互联网,物理网卡的IP地址是192.168.0.X,具体地址有路由器的DHCP自动分配,这样我的VMnet0就链接到192.168.0.0这个子网中,其他的VMnet1~VMnet9我给他们配置的子网号是192.168.X.0,VMnet1中X=1,VMnet2中X=2,VMnet8中X=8,VMnet9中X=9。
机器的两块虚拟网卡的地址是这样的VMware Network Adapter VMnet1的地址是192.168.1.1,VMware Network Adapter VMnet8的地址是192.168.8.1,VMnet8的NAT地址配置是192.168.8.2,
这样,我就可以根据需要配置虚拟机的网卡连接到适当的虚拟网络中达到不同的目的。默认情况下VMWare的host-only网络只有VMnet1一个,其实我们可以再增加几块虚拟网卡,链接到其他非VMnet0、VMnet1和VMnet8以外的虚拟网络中,这样就有最多8个host-only虚拟网络,但是NAT方式的虚拟网络只能有一个。其实如果有兴趣的话,我们可以在host-only网络中,在宿主机上安装代理软件或者NAT软件,也可以达到让虚拟网络中的机器访问网络的目的。如果你的机器配置很高,我们可以一起打开多个虚拟机,其中一些虚拟系统安装两块或者两块以上的网卡,分别连接到不同的虚拟网络中,这样我们就可以使10个虚拟网络链接起来,达到网络测试的目的,非常适合学习网络方面的知识。