在虚拟机Vmware7中,使用桥接上网,终于经过几天的折腾设置好了。现把其中的过程记录一下。
其实原来我的虚拟机一直使用的是NAT方式上网,不过为了使用tftp下载Linux内核到开发板,所以,又改成了桥接上网。不过使用桥接上网有点麻烦,必须要进行一些设置才可以,原来使用Nat方式,装上Ubuntu就可以上网,不用任何的设置。我现说一下我的相关环境。
(1)虚拟机采用的是目前最新版本的Vmware7.0.1,是从官方网站下载的,为什么要强调这一点呢?原因是现在网上有很多的汉化版本,绿色版本,这些版本安装时可能会省略一些文件,为了避免麻烦还是直接就安装官方的吧。
(2)我安装的Linux的发行版本是Ubuntu9.10.
(3)我的网络环境是在公司里的局域网,通过交换机连网。并且IP地址和MAC地址是进行绑定的。
好了,下面介绍怎么安装。Vmware的安装就不用介绍了,网上很多这方面的资料,也没有什么容易出问题的。主要是介绍安装好Ubuntu后如何设置桥接。
首先,我们要明白虚拟机中的NAT方式和桥接方式连接互联网的最大不同点是什么,基本的原理是什么?
(1)桥接的基本原理
配置成桥接网络连接模式的虚拟机就当作主机所在以太网的一部分,虚拟系统和宿主机器的关系,就像连接在同一个Hub上的两台电脑,可以像主机一样可以访问以太网中的所有共享资源和网络连接,可以直接共享主机网络的互联网接入线路访问互联网。主机与虚拟机之间,以及各虚拟机之间都可以互访。对应虚拟机就被当成主机所在以太网上的一个独立物理机来看待,各虚拟机通过默认的VMnet0网卡与主机以太网连接,虚拟机间的虚拟网络为VMnet0。这时你的虚拟机就像局域网中的一个独立的物理机一样。虚拟机中的操作系统可以PING通别的主机,反过来别的主机也可以PING虚拟机。想让它们相互通讯,你就需要为虚拟系统配置IP地址和子网掩码,否则就无法通信。
下面的图就是这几者之间的关系图。
(2)NAT方式
使用NAT模式,就是让虚拟系统借助NAT(网络地址转换)功能,通过宿主机器所在的网络来访问公网。也就是说,使用NAT模式可以实现在虚拟系统里访问互联网。NAT模式下的虚拟系统的TCP/IP配置信息是由VMnet8(NAT)虚拟网络的DHCP服务器提供的,无法进行手工修改,因此虚拟系统也就无法和本局域网中的其他真实主机进行通讯。采用NAT模式最大的优势是虚拟系统接入互联网非常简单,你不需要进行任何其他的配置,只需要宿主机器能访问互联网即可。
下图是NAT方式的物理结构图:
下面开始真正的安装过程:
首先,在你安装上了虚拟机后要确保你也安装了桥接的协议,这可以通过点击右键“网上邻居”,在其中可以看到有两个虚拟出来的网络一个VMnet1,另一个是VMnet8, 如下图所示。
如果没有安装,可以通过下面的方式进行安装,要确保你的网络上了桥接的协议如下图所示:
(1).在"VMware Network Adapter VMnet1属性"中,点"安装"->"服务"->"添加..."->厂商中选择"VMware,Inc",网
络服务中选择"VMware Bridge Protocol 版本:4.0.0.3从磁盘安装..."->"浏览"->C:\Program Files\VMware\VMware Workstation\netbridge.inf(这里选你自己安装目录下的)->"打开"
(2)现在在"VMware Network Adapter VMnet1属性"中看到了"VMware Bridge Protocol",钩选它。
虚拟机中的网络编辑界面的设置
到此虚拟机上的一些配置就完成了。下面开始配置操作系统Ubuntu上的静态IP地址。
首先在Ubuntu中的etc/network/interfaces文件配置静态的IP地址,在使用桥接是,要把虚拟机中的IP地址配置成和主机在一个网段中,这样也就相当于占用了一个独立的IP地址。我的主机是IP地址和MAC地址绑定在一起的,那么相对应的也需要把虚拟机中的IP地址和MAC地址绑定在一起才能使用。这对于公司内IP地址相对紧张的话就会有点小问题。下面是我的interfaces文件中的内容。
uto lo iface lo inet loopback auto eth0 iface eth0 inet static address 10.27.10.125
netmask 255.255.255.0 gateway 10.27.10.1
|
有一个关键的地方,也是Ubuntu的桌面所特有的。在/etc/NetworkManager/nm-system-settings.conf文件中的。
[main] plugins=ifupdown,keyfile
[ifupdown] managed=false
|
然后执行sudo /etc/init.d/network-manager restart,重新配置一下。
还要设置一下DNS服务器,在/etc/resolv.conf,在其中加入
nameserver DNS的地址1
nameserver DNS的地址2
至此Ubuntu就可以上网了,整个的配置也就结束了。在这其中我遇到了两个问题,一个是MAC地址绑定的问题,我的IP地址在路由中不仅绑定了IP,还有一些其它的设置,一开始没有想到,造成了网关都PING不通。还有一个就是修改managed=true.开始也没有重视。其实本来也没有什么难的,有时碰到了不同的发行版本的操作系统,会有不同的问题需要处理。还有具体的环境的不同,不过在解决问题的同时也可以学习到很多的知识。下面就是一个补充的内容,关于Ubuntu的NetworkManager的问题。
补充:Ubuntu中的NetWorkManager概要:
在Ubuntu的桌面发行版本中,有两种管理网络的方法,分别为传统上使用/etc/network/interfaces管理网络介面,还有就是NetworkManager,基本上只能选择一种方法进行管理。
NetworkManager 的设定放在 /etc/NetworkManager/nm-system-settings.conf。它基本上只需要4行设定內容即可运行。下面是Ubuntu里面的设定的内定。
[main] plugins=ifupdown,keyfile
[ifupdown] managed=false
|
更改上述 NetworkManager 的设置后,可以執行 sudo /etc/init.d/network-manager restart 重新载入。在 Ubuntu 中,更改 network/interfaces 的设置后,可以执行 sudo /etc/init.d/networking restart 重新载入设置。这两种机制分別使用不同的管理指令。
按照官方文件的说法,当 managed 设为 false 时,NetworkManager 会忽略列在 network/interfaces 內的网络设置。也就是说,如果我们把网络设定写在 network/interfaces 內的话,NetworkManager 就不会去管理它。如下例,network/interfaces 列出了 lo 和 eth0 这两咱网络的设置方法,故 NetworkManager 就不会去管理 lo 和 eth0 这两会网络。
# /etc/network/interfaces auto lo iface lo inet loopback
auto eth0 iface eth0 inet dhcp
|
如果主机上所有的网络设置都列在 network/interfaces 设定的话.