关于VMware虚拟机的上网
转载请注明出处!本文连接及作者。不得用于商业用途!
http://hi.baidu.com/quantumcloud/blog/item/9156a6c584996c179c163d5b.html
BY:aiminickwong
最近我遇到很多朋友在问我vmware workstation 版本虚拟机的上网问题,在这里,我就针对这个问题做一些说明。
为了朋友们更好的理解VMware Workstation 版本虚拟机是如何连接网络的,下面我就对VMware的3种网络模型做一下相关的介绍。
1.首先,介绍一下VMware的几个虚拟的网络设备:
VMnet0 :
在桥接模式下的虚拟交换机
VMnet1 :
在Host-Only模式下的虚拟交换机
VMnet8 :
在NAT模式下的虚拟交换机
VMnet Network Adapter VMnet1 :
在Host-Only模式下,Host与Host-Only虚拟网络进行通信的虚拟网卡(这是在物理机上的虚拟网卡,跟虚拟机上的虚拟网卡不一样)
VMnet Network Adapter VMnet8 :
在NAT模式下,Host与NAT虚拟网络进行通信的虚拟网卡(这是在物理机上的虚拟网卡,跟虚拟机上的虚拟网卡不一样)
2.接下来,我对3种网络模型做一个介绍:
(1). Bridge Network 桥接网络
在Bridge Network中,Host的物理网卡和Guest(Virtual machine)的虚拟网卡通过虚拟的网桥(Virtual bridge)桥接连接在Virtual Ethernet switch(VMnet0)虚拟交换机上。这里的虚拟机的虚拟网卡和刚才上面提到的VMnet Network Adapter
VMnet1和VMnet Network Adapter VMnet8是不一样的,VMnet Network Adapter VMnet1和VMnet Network Adapter VMnet8是物理机上的虚拟网卡,而这里的虚拟网卡是指虚拟机的虚拟网卡!(对于虚拟机的OS来说虚拟机系统认为虚拟机的虚拟网卡就是其虚拟系统的物理网卡)
你可以这样理解:
在桥接网络中,你物理机的真实网卡和你虚拟机的虚拟网卡在网络中的地位其实是一样的,即可以说虚拟机是和物理机处在同一个网段中的另外一台机器。
比如这是我的物理机,如下图,大家可以看到VMnet Network Adapter VMnet1和VMnet Network Adapter VMnet8还有我本机的网卡。
这是我本机(物理机)的真实物理网卡信息:
这是我虚拟机的虚拟网卡信息:
大家可以看到其实他们是在一个网段中的,我在路由上开启了DHCP,所以虚拟机通过DHCP获取到的IP和物理机是在同一个网段。这样虚拟机和物理机是在同一个网段,所以自然是可以上外网的。
他们之间当然也能互通:
虚拟机
到路由肯定也是通的:
本机到虚拟机:
(2). Network Address Translation (NAT) NAT网络
在Network Address Translation (NAT)中,物理机(Host)上的虚拟网卡VMnet Network Adapter VMnet8连接到虚拟交换机VMnet8上,并不是直接连接到虚拟机上,而是通过VMnet8(虚拟交换机)与虚拟机所在的网段进行通讯,其VMnet Network Adapter VMnet8并不会为虚拟机所在的网段提供路由服务。在VMnet8(虚拟交换机)网段下的虚拟机而是通过虚拟的NAT服务器(正如上图中的NAT Device)连接到外网的。
我本机的VMnet Network Adapter VMnet8网卡信息:
这里我们没有看到网关,我用的是workstation 7.01的版本,其实她在这里可以看到:
在开始菜单找到:Virtual Network Editor
打开它,如下图,看到了吗,这几个虚拟设备都在这里:
找到VMnet8,选择NAT Settings,打开它:
看到了吗
其实这里他是一台虚拟的NAT服务器
现在我们看一下我虚拟机的网卡信息:
看到了吧,和物理机在一个网段!
呵呵,现在开始变得有意思了,我们ping一下。
物理机:
虚拟机:
虚拟机到网关:
看,通了!这个时候虚拟机也能上外网了!
VMnet Network Adapter VMnet8 的IP地址VMware在安装的时候自动随机指定的一个IP地址(不要修改VMnet Network Adapter VMnet8虚拟网卡所在的网络ID,这样可能造成Host和Guest无法通信),如果出现问题,大家可以在Virtual Network Editor中选择:
选择
来恢复默认值!
虚拟机中的IP是用过虚拟的DHCP服务器来分配的,这个虚拟的服务器其实只是系统中的一个服务,大家可以在系统服务中看到:
(开始菜单运行中键入:services.msc)
如果发现虚拟DHCP服务器出现问题,可以尝试重新启动该系统服务来解决问题。
在NAT模式的网络中,Guest的网关指向192.168.78.2,其实那个也是虚拟的NAT服务器的地址,这个虚拟的NAT服务器其实也只是一个系统服务:
如果发现虚拟NAT服务器出现问题(比如不能上网),可以尝试重新启动该系统服务来解决问题。
说来说去,VMnet Network Adapter VMnet8只是Host与Guest网段通信的一个接口,即使你禁用掉VMnet Network Adapter VMnet8也不会影响Guest虚拟机上网的,只是这个时候Host无法与Guest网段进行通讯了,但是你的Guest仍然可以上网,因为这个模式下起作用的其实是2个系统服务,他们仍然在正常运行!
(3). Host-only Networking Host-Only网络
在Host-Only Networking 模式网络中,Host-Only网络是一个隔离的无法与外网通信的网络结构。Host-Only网络和NAT网络比较类似,不同之处就是在Host-Only模式下,没有使用NAT服务,VMnet1也没有连接到路由,所以不能访问到外网。而Host与Guest则利用VMnet Network Adapter VMnet1 这块虚拟网卡进行彼此的通信。在这个模式下Guest通过虚拟的DHCP服务器获得IP,这一点和NAT模式是一样的。
这是我本机VMnet Network Adapter VMnet1的配置:
这是我虚拟的网卡信息:
看到没有他们在一个网段下,当然可以互访了。
我的物理机:
虚拟机:
在Host-Only网络中,Guest的Default Gateway为空,因为虚拟NAT服务器,所以即使用route add添加路由,Guest也不能访问外网的。因为这个模式就是一个隔离的模式,即使一个isolated的网络。
当然网上有朋友说,可以在Host上来为VMware Network Adapter VMnet1虚拟网卡做路由,例如用RRAS来做,这样处于Host-Only网络下的Guest就又可以上外网了,她只需要使用route add自己的默认网关改成VMware Network Adapter VMnet1网卡地址即可。也兴趣的朋友也可以尝试一下。
3.Virtual Network Editor
其实很多设置都还可以在 Virtual Network Editor 中自定义,比如你可以修改你想要的网络ID,当然的记得如果你改了VMnet1 和VMnet8 ,VMnet Network Adapter VMnet1 和VMnet Network Adapter VMnet8 也要改为相同ID才行。
3.总结一下关于上网问题
其实看了上面的内容你会发现除了Host-Only模式不能上网以外,其他2中个方式都可以,大家在出现问题的时候不要急,冷静判断一下,找到是哪个地方的问题然后在逐一解决,本文意在抛砖引玉,虚拟机还有很多地方值得我们去研究。
4.还是无法上网!或者能上QQ不能打开网页!怎么办?
如果你仔细看完我上述的介绍,还是不能上网,而却你确信使用ping命令测试物理机和虚拟机之间是联通的,那就是你虚拟的DNS设置问题!
只需要改为正确的DNS即可!
方法如下:
查看你本机(物理机)的网卡连接信息,找到你的DNS地址,如上图我DNS是202.96.209.5/192.168.100.8,把你的虚拟及的DNS设置成和你的本机的DNS相同即可。
找到你的连接网卡:
右键打开属性设置,如上图
找到
选择“属性”
在下面填入你的DNS
就是在下图这个地方
保存即可生效。
如果你实在找不到你的DNS,那就打电话问问电信客户吧,他们会告诉你的,每个地方的DNS服务器地址是不一样的。