转载请注明出处!本文连接及作者。不得用于商业用途!

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 VMnet1VMnet Network Adapter VMnet8是不一样的,VMnet Network Adapter VMnet1VMnet 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只是HostGuest网段通信的一个接口,即使你禁用掉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也没有连接到路由,所以不能访问到外网。而HostGuest则利用VMnet Network Adapter VMnet1 这块虚拟网卡进行彼此的通信。在这个模式下Guest通过虚拟的DHCP服务器获得IP,这一点和NAT模式是一样的。

这是我本机VMnet Network Adapter VMnet1的配置:

这是我虚拟的网卡信息:

看到没有他们在一个网段下,当然可以互访了。

我的物理机:

虚拟机:

Host-Only网络中,GuestDefault 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 VMnet8VMnet Network Adapter VMnet1VMnet 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服务器地址是不一样的。

vmware网卡设置详解的更多相关文章

  1. VMware网络设置详解--不错

    我们知道,VMware Workstation提供了很多虚拟设备,利用这些设备,我们除了可以组建典型的桥接网络.仅主机网络.NAT网络外,还能组建复杂的自定义网络.本篇 目的就是让大家认识和掌握VMw ...

  2. VMware网络设置详解

    标签: 网络vmware虚拟机web服务network 2009-05-19 22:23 27537人阅读 评论(7) 收藏 举报 分类: 基于类linux的开发(171) 我们知道,VMwareWo ...

  3. linux网卡设置详解

    centos7安装之后是需要在网卡配置文件中开始网络连接 onboot =yes 刚开始时网卡获取IP模式是dhcp 你会发现ifconfig不能用,猜测是废弃了,你要yum install net- ...

  4. 网卡配置文件详解 用户管理与文件权限篇 文件与目录权限 软连接 tar解压命令 killall命令 linux防火墙 dns解析设置 计划任务crond服务 软件包安装 阿里云 yum源 安装

    Linux系统基础优化及常用命令 Linux基础系统优化 引言没有,只有一张图. Linux的网络功能相当强悍,一时之间我们无法了解所有的网络命令,在配置服务器基础环境时,先了解下网络参数设定命令. ...

  5. freebsd网卡驱动程序详解

    freebsd网卡驱动程序详解 来源 https://blog.csdn.net/h_cszc/article/details/7776116 /* 注释:xie_minix */ /*此处为BSD申 ...

  6. 【转】Eclipse Java注释模板设置详解

    Eclipse Java注释模板设置详解   设置注释模板的入口: Window->Preference->Java->Code Style->Code Template 然后 ...

  7. Win7 NFS 设置详解 | X-Space

    Win7 NFS 设置详解 | X-Space Win7 NFS 设置详解

  8. [转]JAVA环境变量JAVA_HOME、CLASSPATH、PATH设置详解

    [转] JAVA环境变量JAVA_HOME.CLASSPATH.PATH设置详解 - dreamman的日志 - 网易博客http://blog.163.com/dreamman_yx/blog/st ...

  9. 绘制基本图形和线型(StrokeStyle)的设置详解

    绘制基本图形和线型(StrokeStyle)的设置详解 目前,在博客园上,相对写得比较好的两个关于Direct2D的教程系列,分别是万一的Direct2D系列和zdd的Direct2D系列.有兴趣的网 ...

随机推荐

  1. 利用闭包实现多次ajax请求只执行最后一次

    点一个按钮,则向服务器请求资源,不作处理时,多次点击后会有很多个请求在等待.我们知道一般我们用ajax是异步请求,那么我们快速重复点击一个按钮得到的结果其实我们并不知道是哪次点击的结果可能是第一次可能 ...

  2. HDU--洗衣服

    洗衣服 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  3. Google Protocol Buffer开发环境搭建注意事项

    PB的安装配置基本上依照网上的教程做就没什么问题:有一点要注意到是当遇到libcmt.lib或msvcrt.lib等lib库与PB中的库冲突时,一定要检查工程的编译方式完全一致,整个项目当中都要注意这 ...

  4. centos上安装php运行环境

    可以参考,但我安装的过程不完全一样http://www.cnblogs.com/liulun/p/3535346.html 我先安装的apache,直接执行的yum -y install httpd ...

  5. 实用redis前需了解的5大事项

    百万个键,每个值的长度是32-character,那么在使用6-character长度键名时,将会消耗大约96MB的空间,但是如果使用12-character长度的键名时,空间消耗则会提升至111MB ...

  6. python serial 获取所有的串口名称

    http://blog.csdn.net/qq61394323/article/details/44619511 #!/usr/bin/env python # -*- coding: utf-8 - ...

  7. 【Java并发编程实战】-----“J.U.C”:Condition

    在看Condition之前,我们先来看下面这个例子: 工厂类,用来存放.取出商品: public class Depot { private int depotSize; //仓库大小 private ...

  8. 同步博客到CSDN

    经过一些朋友的多次邀请,现同步博客到CSDN,地址:http://blog.csdn.net/knightswarrior.

  9. defered,promise回顾

    defered,promise回顾 http://www.ruanyifeng.com/blog/2011/08/a_detailed_explanation_of_jquery_deferred_o ...

  10. python基础总结篇——使用Mysql

    python操作Mysql,很方便,使用的MySQLdb的库,基本的操作如下: 查询: try: conn = MySQLdb.connect(host=self.ip, user=self.user ...