VMware网络模式介绍

VMware网络模式介绍

本文转自csdn,原帖地址  https://blog.csdn.net/yaoyaowugui/article/details/7422388

VMWare提供了三种工作模式,它们是bridged(桥接模式)、NAT(网络地址转换模式)和host-only(主机模式)。

Bridged 模式:

在桥接模式下,VMware虚拟机里的系统就像是 局域网 中的一台 独立 的主机,它可以访问同一个网段内任何一台机器,即可以相互ping通。

在桥接模式下,你需要手工为 虚拟系统配置IP地址、子网掩码,而且还要和宿主机器处于同一网段,这样虚拟系统才能和宿主机器进行通信。同时,由于这个虚拟系统是局域网中的一个独立的主机系统,就可以手工配置它的IP,DNS服务器,网关等信息,以实现通过局域网的网关或通过交换机访问外网。

连接方式拓扑图(相同颜色的表示能互相通信):

图中的局域网,可能由路由器或者交换机建立。

本地物理网卡和虚拟网卡通过虚拟交换机进行桥接,物理网卡和虚拟网卡在拓扑图上处于同等地位。

Vmware默认给虚拟系统提供了一个虚拟网卡(linux下默认为eth0设备),虚拟系统通过该网卡与外部通信。图中虚拟交换机由vmware 提供,其默认设备名为 VMnet0。

NAT 模式:

NAT 即 Network Address Translation 缩写,即网络地址转换,由 NAT服务完成,在vmware里默认为VMnet8虚拟交换机,它将虚拟系统的IP地址转换成宿主机的IP地址,从而借用宿主机访问其他主机。使用NAT模式,也可以让虚拟系统通过宿主机器所在的网络来访问公网。

在这种模式下,虚拟系统是不能被LAN内其他PC访问的(宿主机可以,稍后讲),只能虚拟机以宿主机的名义访问LAN内的计算机。默认情况下NAT模式的虚拟系统的TCP/IP配置信息由VMnet8(NAT)虚拟网络的DHCP服务器提供,因此采用NAT模式最大的优势是虚拟系统接入互联网非常简单,你不需要进行任何其他的配置,只需要宿主机器能访问互联网即可。使用NAT方式时,宿主机(Windows)网络管理里会多出一块虚拟网卡,

名为VMware Network Adepter VMnet8 如下图:

(VMware Networl Adapter VMnet1是host only模式通信用网卡)

这块网卡是VMware虚拟提供的仅用来与虚拟系统通信的网卡,在windows下被直接连接到VMnet8虚拟交换机上 与 虚拟系统的网卡 进行通信。也就是说虚拟系统与宿主机的通信用到这块网卡,而 虚拟系统的上网功能,直接由NAT服务器提供,不经过这块网卡。

连接方式拓扑图(相同颜色的表示能互相通信):

图中的局域网,可能由路由器或者交换机建立。

实际上,VMware Network Adepter VMnet8虚拟网卡的作用就是为主机和虚拟机的通信提供一个接口,即使主机关闭该网卡,虚拟机仍然可以连接到Internet,但是主机和虚拟机之间就不能互访了,还有访问局域网内的其他计算机,也是通过NAT服务实现。

host-only 模式:

在Host-Only模式下,虚拟系统所在的虚拟网络是一个全封闭的网络,它唯一能够访问的就是宿主机。其实Host-Only网络和NAT网络很相似,不同的地方就是Host-Only网络没有NAT服务,所以虚拟网络不能连接到Internet,即虚拟系统无法上网。在host-only模式中,所有(Vmware创建的多个虚拟系统)的虚拟系统是可以相互通信的,当然在NAT模式下也可以,但虚拟系统和真实的网络是被隔离开的,主机和虚拟机之间的通信是通过VMware Network Adepter VMnet1虚拟网卡来实现的。

连接的网络拓扑图(相同颜色的表示能互相通信):

图中的局域网,可能由路由器或者交换机建立。

小结:

在VMware的3种网络模式中,NAT模式是最简单的,基本不需要手动配置IP地址等相关参数。至于桥接模式则需要额外的公网IP地址,ISP一般是不会这么大方,所以在局域网内很适用。

如果虚拟机想成为LAN中的成员,访问其他内网设备,比如其他计算机,嵌入式开发板等,那么虚拟机的模式应该选择Bridged 模式。

如果虚拟机想成为公网中的成员,即访问Internet,那么虚拟机的模式应该选择Bridged模式,但是需要网络服务商提供一个额外的IP(服务商不是SB)或者用路由器给虚拟机分配IP,

或者 直接选用NAT模式,必要时配置虚拟系统的IP,网关和DNS信息(一般默认既可)。

如果虚拟机想与LAN隔离,那么虚拟机的模式应该选择Host-only模式。

VMware网络配置

(目标:将IP设置为静态和上网 )

    由于host-only 模式与NAT方式很相似,对一般用户来说也用不到,而且笔者也从未尝试使用host-only模式,就不在这里介绍了,虚拟系统以Ubuntu10.04-LTS 为例,Vmware以 workstation 7.1为例,宿主机以windows7为例,并且假设系统已经装好。其他系统可以参考

Bridge 模式:

打开 VMware 软件,在 Ubuntu 标签栏里找到”Devices”标签,然后双击

“Network Adapter” 如下图

在弹出的对话框里选择 ” bridged :connected directory to the physical network “

点击 ” OK ” , 自动退回到 第一个界面。

点击 ” edit ” —- ” Virtual Network Editor ”

点击 最上面窗口的 ” VMnet0 ” 条目,在下面VMnet Information 里选 Bridged(默认),

点击 ” Bridged  to “下拉框,选择一个合适的网卡,这里我用 有线网卡 作为bridge 对象。

这里说明一下,如果刚才在 上一步 的设置选中了replicate phycial connection state,这里可以选择

默认的 Automatic , 至于效果怎么样,没试过,可以尝试一下。

点击 ” OK ” 保存设置。

启动 虚拟机,运行 Ubuntu 系统。

为了虚拟系统 和 windows 通信 、访问其他LAN 设备乃至访问 Internet,需要配置windows 和Ubuntu的网络。

在windows下,需要修改有线网卡的IP地址(如果您刚才选择的是无线网卡或者其他网卡,那请对应修改。

Windows网络设置:

开始 — 控制面板 — 网络和Internet —- 网络连接 (或者其他方式都可以),在本地连接图标上 点击 右键–属性,在 Internet 协议版本 4(TCP/IP)上双击,选择 使用下面的IP地址,填写合适的IP,具体值跟您的网络环境有关,比如我就设置跟我的路由器同一个网段,IP 地址为 192.168.1.95 ,网关为192.168.1.1。

如果上不了网,就手动设置DNS服务器地址,配置如图

点击 ” 确定 ” 保存设置。

Ubuntu 网络设置 :

现在来配置Ubuntu的网络,默认情况下,Ubuntu的IP和DNS是自动获取的。

这里改为静态,因为VMnet0并不提供DHCP服务。

打开终端 

输入: sudo  gedit  /etc/network/interfaces 

在 文件里 找到

auto eth0

iface eth0 inet dhcp 

//这两句,用#注释掉,没有就掠过

在下面有空的位置加入这几句:

auto eth0              

iface eth0 inet static

address 192.168.1.96

netmask 255.255.255.0

gateway 192.168.1.1

意思就是使用静态IP地址,address为IP 地址,IP地址要与windows同一个网段,

这里假设为 192.168.1.96,windows的为192.168.1.95

gateway 是网关地址,根据具体网络设置,这里设置为路由器的IP地址  192.168.1.1

修改完成后点击保存,关闭gedit 。

在终端

输入 :  sudo  /etc/init.d/networking  restart 

输入 :      ifconfig  eth0

命令含义:

//重新启动网络,使配置生效

//查看网卡信息,如果显示地址为刚才配置 的地址,则说明配置成功,否则重试。

如果主机能上网,虚拟系统不能,则需要修改DNS

终端输入:

sudo  gedit  /etc/resolv.conf

添加一条 nameserver 并输入与windows下 的DNS地址, 该地址可以在路由器中查到

示例:

nameserver 60.191.134.36

nameserver 60.191.134.37

保存后 重启 网络既可。

/******************************************************************************************/

测试网络:

在 ubuntu 终端输入 ping  windows主机IP

例如出现这样: ping 192.168.1.95

64 bytes from 192.168.1.95: icmp_seq=1 ttl=64 time=4.75 ms

64 bytes from 192.168.1.95: icmp_seq=2 ttl=64 time=0.291 ms

64 bytes from 192.168.1.95: icmp_seq=3 ttl=64 time=0.251 ms

在windows下输入 ping UbuntuIP

例如出现这样 : ping 192.168.1.96

来自 192.168.1.96 的回复: 字节=32 时间<1ms TTL=64

来自 192.168.1.96 的回复: 字节=32 时间<1ms TTL=64

来自 192.168.1.96 的回复: 字节=32 时间<1ms TTL=64

既可表示 虚拟系统 与 宿主机 windows 通信正常。如果有路由,此时虚拟系统也应该能够ping通路由器上其他LAN设备,其他设备也能访问虚拟系统.

NAT 模式:( 默认就行,这里介绍如何在这种模式下使用静态IP )

打开 VMware 软件,在 Ubuntu 标签栏里找到”Devices”标签,然后

双击 “Network Adapter” 如下图:

选择 NAT : use to share host’s IP

点击  ‘” OK ” 保存 退出。

以上是默认的设置,如果以前没有配置过的话理论上虚拟系统就可以直接上网了。

此时Ubuntu 的网卡应该是 自动获取 IP 和 DNS 模式。

在 终端里输入:  

ifconfig eth0

既可查看到当前 IP,给windows的有线物理网卡设置一个IP值,比如 192.168.1.95 ,假设查到的Ubuntu IP 是192.168.183.116(每次登陆都会变),则应该可以互相ping通,方法在bridge模式里介绍过了。

由于 虚拟系统 默认是自动获取IP地址的,这就给虚拟机与主机通信带来了不小的麻烦,每次重启,都需要先查询一下Ubuntu当前的IP值,这是一件非常糟糕的事情,下面的方法将IP设置为 静态 。

在Vmware 主界面上 菜单栏 点击 ” edit ” —- ” Virtual Network Editor ”

在中间的框里 点击  ” VMnet8 ” 条目,在下面VMnet Information 里选 NAT 方式。

把 ” Use local DHCP service to distribute IP address to VMs ” 前面的钩钩去掉,即不用DHCP服务器,手动配置IP。

然后 点击  ” NAT Setings ”  , 查看当前 gateway 信息,并记录一下,然后关闭窗口

其中 我的 Gateway IP 192.168.183.2 也就是 Ubuntu 虚拟系统上网的 网关地址。

启动Ubuntu,然后

打开终端

输入: sudo  gedit  /etc/network/interfaces  

在 文件里 找到

auto eth0

iface eth0 inet dhcp

//这两句,用#注释掉,没有就掠过

在下面有空的位置加入这几句:

auto eth0              

iface eth0 inet static

address 192.168.183.91

netmask 255.255.255.0

gateway 192.168.183.2

address 的地址要与 虚拟交换机VMnet8的IP在一个网段,比如前面 已经得到 VMnet8的地址是192.168.183.0,所以设置Ubuntu 的IP地址 为 192.168.183.x,这里示例为91。

gateway 是网关地址,设置为 刚才查到并记录的网关地址,这里为192.168.183.2

修改完成后点击保存,关闭gedit 。

在终端

输入:  sudo  gedit  /etc/resolv.conf

添加一条 nameserver 并输入与windows下 的DNS相同的地址, 该地址可以用dos命令

ipconfig   /all 查到。

示例:

nameserver 60.134.192.36

nameserver 60.134.192.37

在终端

输入 :  sudo  /etc/init.d/networking  restart

输入 :     ifconfig  eth0              //查看网卡信息,如果显示地址为刚才配置 的地址,则说明配置成功。

/******************************************************************************************/

测试网络:

打开 ubuntu 下的浏览器,能上网即表示Internet正常,或者用ping 命令 ping公网 地址。

测试通信:

在 ubuntu 终端输入 ping  windows主机IP

例如出现这样: ping 192.168.1.95

64 bytes from 192.168.1.95: icmp_seq=1 ttl=64 time=4.75 ms

64 bytes from 192.168.1.95: icmp_seq=2 ttl=64 time=0.291 ms

64 bytes from 192.168.1.95: icmp_seq=3 ttl=64 time=0.251 ms

在windows下输入 ping UbuntuIP

例如出现这样 : ping 192.168.183.91

来自 192.168.183.91 的回复: 字节=32 时间<1ms TTL=64

来自 192.168.183.91 的回复: 字节=32 时间<1ms TTL=64

来自 192.168.183.91 的回复: 字节=32 时间<1ms TTL=64

既可认为通信成功。

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注