Network setting in VMWare

虚拟技术日渐盛行,在客户处已经可以看到不少真正的产品环境完全得运行在虚拟机中了。而VMWare无疑是虚拟化厂商中的先驱者和领先者(惭愧的是我到今天才知道原来VMWare在2004年的时候就已经被EMC收购了)。

个人的笔记本上安装了VMWare,用于在Windows运行Ubuntu Desktop 810,在VMware中如何设置网络是每个新手都关心的。这篇文章介绍在VMWare中通过Brideged或者NAT两种方式来设置网络。这两种方法都可以实现Host机器(Windows)上网,Guest机器(Ubuntu)就能够上网。

1. 使用NAT方式

在安装完VMWare Workstation(需要注册)或者VMWare Player(免费)以后,Windows主机上会生成两块虚拟网卡。

From Drop Box

其中“Ethernet adapter VMware Network Adapter VMnet8”就是NAT方式的交换机。“Ethernet adapter VMware Network Adapter VMnet1”是host-only方式的交换机,这里不讨论。

每个人安装完毕以后,“Ethernet adapter VMware Network Adapter VMnet8”这块网卡的IP就已经生成了,这是自动生成的,每次都可能不一样,所以需要在安装完VMWare以后查看一下这个IP,在我的机器上是192.168.229.1。所以要在Ubuntu中设置的网卡IP也必须位于192.168.229.x网段,同时Gateway地址是192.168.229.2,这是规定好的。

在VMWare的设置中将网卡选择为NAT方式,然后打开虚拟机。

无论你的host机器是使用无线还是有线网卡上网的,在Ubuntu中均选择配置有线网卡。按照下图,将IP设置在192.168.229.x网段,Gateway和DNS均是192.168.229.2。

From Drop Box

之后禁用网络再启用网络,Guest机器就可以上网了。

使用NAT方式的好处在于:
1) 无需配置VMWare中需要映射Host机器的哪块网卡,因为使用到的只是VMnet8这块虚拟的网卡而已。这对于只下载了VMWare Player的用户来说,是最简单的选择。
2) 因为Guest机器是固定IP,因此对于在Host机器中访问Guest机器提供了方便,在我的机器上,以后无论Host主机的IP怎么变化,只需要始终用192.168.229.27这个IP就可以访问Guest机器了。

2. 使用Brideged方式

桥接的方式会使用VMnet0这块虚拟网卡,但是这块网卡并不会出现在Host机器的ipconfig命令中,要求在VMWare中配置。Edit -> Virtual Network Editor -> Host Virtual Network Mapping,在这里将VMnet0网卡映射到Host机器上网正在使用的网卡上,在我的机器里是映射到WiFi网卡上了。

From Drop Box

配置完上面这步,在VMWare的设置中将网卡选择为Brideged方式,然后打开虚拟机。

无论你的Host机器是使用无线还是有线网卡上网的,在Ubuntu中还是选择配置有线网卡,但是跟NAT方式不同的是,需要配置成跟Host机器的IP一样的网段,而不是跟VMnet8一样的网段,比如参看我的机器,就应该配置成192.168.1.x,而不是192.168.229.x。

这时候Guest机器就仿佛一台完全独立的机器,和Host机器一样,如果在你的网络中DHCP服务器,那么Guest机器也会自动获取到IP地址,除了Host之外,局域网中的其他机器也可以看到这台Guest机器。

Brideged方式的缺点:
当你的Host机器使用无线网卡上网,而又要求通过Brideged方式来让Guest机器也上网的话,通常VMWare Player无法满足你的要求。因为在Player中无法设置VMnet0映射到哪块网卡上,通常安装VMWare Player的时候,就被自动映射到Host机器的有线网卡上了。所以需要安装VMWare Workstation,然后像上图那样修改VMnet0的映射。

总结:
如果NAT方式能够满足你的需求,那么使用NAT方式配置VMWare的网络吧,这是最简单的方式。

4 thoughts on “Network setting in VMWare

  1. Metaphysic.Qiu says:

    楼主可以考虑用用Sun的Virtualbox
    不过貌似有2G以上内存不支持的BUG
    VMware的IO对机器实在是种虐待

Leave a Reply

Your email address will not be published. Required fields are marked *