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

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. call和bind改变的上下文环境

    这周自我学习的时间很宽裕.正巧一直对call和apply不甚理解(虽然bind还经常用到,仅仅是知道这么用有这个效果= =,而不知为何有这个效果),下午就自己写写demo,帮助自己理解. functi ...

  2. TCP三次握手四次挥手

    看到一篇总结很好的TCP三次握手,学习一下,原文链接. 建立TCP需要三次握手才能建立,而断开连接则需要四次握手.整个过程如下图所示: 先来看看如何建立连接的. 首先Client端发送连接请求报文,S ...

  3. react-native 环境搭建以及项目创建打包

    参考:http://www.lcode.org/%E5%8F%B2%E4%B8%8A%E6%9C%80%E8%AF%A6%E7%BB%86windows%E7%89%88%E6%9C%AC%E6%90 ...

  4. shared_ptr

    省去对象指针的显示delete typedef tr1::shared_ptr<int> IntPtr; IntPtr fun() { IntPtr p = new int(3); ret ...

  5. review简历之感想和建议

    最近帮很多朋友review他们的简历,总结起来存在以下问题: 1,简历太多页了.请尽量不超过两页.一般地,每个hr阅读简历的时间大概在20s甚至更少,写那么多页不仅毫无必要,而且有害. 而且我怀疑一般 ...

  6. Raft 为什么是更易理解的分布式一致性算法

    一致性问题可以算是分布式领域的一个圣殿级问题了,关于它的研究可以回溯到几十年前. 拜占庭将军问题 Leslie Lamport 在三十多年前发表的论文<拜占庭将军问题>(参考[1]). 拜 ...

  7. Disruptor-NET和内存栅栏

    Disruptor-NET算法(是一种无锁算法)需要我们自己实现某一种特定的内存操作的语义以保证算法的正确性.这时我们就需要显式的使用一些指令来控制内存操作指令的顺序以及其可见性定义.这种指令称为内存 ...

  8. ReactJS入门(一)—— 初步认识React

    React刚开始红的时候,由于对其不甚了解,觉得JSX的写法略非主流,故一直没打算将其应用在项目上,随着身边大神们的科普,才后知后觉是个好东西. 好在哪里呢?个人拙见,有俩点: 1. 虚拟DOM —— ...

  9. 总体介绍ASP.NET Web API下Controller的激活与释放流程

    通过<ASP.NET Web API的Controller是如何被创建的?>我们已经对HttpController激活系统的核心对象有了深刻的了解,这些对象包括用于解析程序集和有效Http ...

  10. 《Entity Framework 6 Recipes》中文翻译系列 (41) ------ 第七章 使用对象服务之标识关系中使用依赖实体与异步查询保存

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 7-7  标识关系中使用依赖实体 问题 你想在标识关系中插入,更新和删除一个依赖实体 ...