首先介绍一下VMware的网络连接方式。我们的主机通常经过物理网卡与局域网和Internet相连接,而虚拟机既已被称之为虚拟计算机,那虚拟网卡也必然存在,而如果我们想让虚拟计算机能连接到局域网或者Internet,那就必须让虚拟网卡和主机的真实物理网卡协同起来。VMware提供了三种将虚拟网卡和物理网卡捆绑起来的方式,即桥接(Bridge)模式,网络地址转换(Network Address Transformation, NAT)模式和主机(Host Only)模式。
简单而言:
Bridge模式直接将虚拟机添加到局域网中,使虚拟机看起来像网内的一台真实计算机,虚拟网卡和宿主物理网卡之间不存在名义上的从属关系,因而需要局域网内具有多余的IP地址能够提供给虚拟机网卡,如果局域网内严格给每台计算机分配固定的IP,那这种Bridge模式就基本失效。比如要挂网络文件系统,但是我们是在windows下VM虚拟机上面装的linux系统,可以用这种方式!在Bridge模式下虚拟机既可以访问到Internet也可以同局域网内的其他真实计算机通信;
NAT模式下宿主的物理网卡就充当了路由器或交换机的角色,这时VMware会根据宿主的真实IP提供很多Subset IP供虚拟机使用,这样所有的虚拟机都是通过宿主的网络端口进行对Internet的访问,但看起来这些虚拟计算机都合法地访问到了局域网或者Internet,因为他们的IP地址通过NAT技术之后看起来是合法的。
Host Only模式下虚拟机之间可以相互通信,但虚拟机并不能同局域网内的其他真实计算机直接通信,但该模式下通过宿主访问Internet还是可以的。
上图为桥接(Bridge)模式
上图为网络地址转换(NAT)模式
上图为主机(Host Only)模式
VM的虚拟网卡可以被设置成上述的三种网络连接模式,默认情况下,VMnet0被设置成为Bridge模式,VMnet1被设置为Host Only模式,而VMnet8的默认连接方式为NAT模式。VMnet2-VMnet7和VMnet9这七块虚拟网卡用户可以自定义,但是在所有的虚拟网卡中仅有一块能被设置为NAT模式,默认情况就是VMnet8。用户可以在VMware workstation->Edit->Virtual Network Editor中查看这些信息。
了解了虚拟网卡连接网络的方式之后,需要实际地来连接网络了。选择较为简单的Internet连接方式,即NAT模式,首先在“Virtual Machine Settings”中设置“Network Connection”方式为NAT模式(见图1)。打开Win7的“网络和共享中心”,选择“更改适配器设置”,如果VMware workstation安装正确的话,这里应该可以看到VMnet1和VMnet8这两块虚拟网卡。查看连接有宽带的“本地连接”的属性,顺便在“网络”选项卡下面的“此连接使用下列项目”中将VMware Bridge Protocol勾选上,以便以后选用Bridge模式的时候使用此协议。在“共享”选项卡下面“Internet连接共享”中勾选“允许其他网络用户通过此计算机的Internet连接来连接(N)”时在“家庭网络连接(H)”中选择VMnet8。这样设置之后就已经将宿主计算机的网络访问权限与VMnet8共享。
网络连接中可见VMnet1和VMnet8
设置网络共享
下面需要配置VMnet8的IP地址和掩码等。首先查看一下VMnet8的网络属性,同样顺便在“网络”选项卡下面将“此连接使用下列项目”中将VMware Bridge Protocol勾选,以便日后Bridge模式使用。查看TCP/IPv4的属性,可以看到IP地址已经自动变为固定的192.168.137.1,子网掩码已经是255.255.255.0,这些就让其这样设置,暂且不管。
接下来需要在VM中配置VMnet8的IP属性了。如图5,打开VMware workstation->Edit->VMware Network Editor,选择VMnet8,勾选Connect a host virtual network adapter to this network和Use local DHCP service to distribute IP address to VMs。Subset IP需要与宿主VMnet8的IP在同一地址段,可填写192.168.137.0,Subset Mask应与VMnet8的子网掩码相同,即填写255.255.255.0。打开DHCP Settings,里面的Start IP address填写192.168.137.0,End IP address填写192.168.137.255,即可在这一IP段内自动分配给虚拟计算机IP地址。在NAT Settings里面将Getway IP设置为宿主计算机中VMnet8的IP,即192.168.137.1。
上述设置总结起来,就是将宿主计算机的物理网卡与VMnet8共享,VMnet8充当路由器,而VM中的虚拟计算机通过DHCP自动获得在某一个IP段内的IP地址,这些虚拟机都通过路由器(VMnet8)连接的IP与物理网卡上的Internet连接。
设置好这些之后,在VMware中启动CentOS,如果正常的话应该可以ping通网络了,打开Xwindow里面的浏览器也应该可以开始冲浪了。如果还连接不上Internet,那可以用root用户(其他用户没有权限修改配置文件)登录CentOS,检查一下文件系统->etc->sysconfig->network-scripts->ifcfg-eth0中的bootproto是不是dhcp,如果不是则修改为dhcp,然后用命令service network restart重启网络连接,就可以连上网络了。