实验环境:
主机操作系统: Ubuntu Linux 9.04 Desktop I386
虚拟机软件: Virtualbox 2.1.4 OSE 版(可以从ubuntu tweak里面自动安装)
虚拟操作系统: CentOS Linux 5.3 I386
实验目的: 让Centos和Ubuntu能够桥接,处于一个局域网内。
注:经测试,Virtualbox最新版本 3.0.4,自带的桥接功能,不能实现上述目的,因此目前只能改用2.1.4 OSE版本。不知道是我自己的RPWT,还是软件自身问题。
一. 安装必备的软件包
先安装uml-utilities,该工具包含建立虚拟网络设备(所谓的“TAP interfaces”)的工具,然后是桥接工具bridge-utils,2个一起装就是了,最后有个启动的提示,成功的话会提示OK。命令:
sudo apt-get install uml-utilities bridge-utils
二. 为了使你的虚拟机能够访问网络接口,你必须将运行虚拟主机的用户的用户名http://ubuntuone.cn/(通常是你的ubuntu登录用户名)添加到uml-net用户组。比如我这里,ubuntu用户名是 solar,命令写出来就是:
sudo gpasswd -a solar uml-net
三. 修改interfaces文件,添加虚拟网络设备:
sudo gedit /etc/network/interfaces
在打开的文件后面添加下面的内容(用你Ubuntu的用户名替换其中的“用户名”,比如我用的solar),保存好:
auto tap0
iface tap0 inet manual
up ifconfig $IFACE 0.0.0.0 up
down ifconfig $IFACE down
tunctl_user 用户名
auto br0
iface br0 inet static
address 192.168.1.2
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
bridge_ports all tap0
上面第一部分的大概意思是将虚拟网络接口命名为“tap0”,指定该接口IP配置方法为手动,并指定使用该接口的用户。第二部分的大概意思是建立一个名叫“br0”的网桥,该桥的IP配置方法为通过DHCP配置,主机中的所有网络接口,也包括tap0这个虚拟网络接口,都将建立在这个桥之上。 看图:
四. 激活刚才建立的虚拟网络接口和网络桥,命令如下(2条命令分别输入):
sudo /sbin/ifup tap0
sudo /sbin/ifup br0
注:这个步骤只需要做一次,以后主机启动时,这个接口和桥将自动激活。
五. 启动virtualbox,在主界面上选中要使用刚才建立的虚拟网络接口tap0的虚拟机,点“设置”,在弹出的窗口中选“网络”,选中 其中一块网卡(通常为“网络适配器 0”),选中“启用网络适配器”,“连接到”后面选“Host Interface”,然后在“主机网络界面名称”中填入刚才建立的虚拟网络接口的名字“tap0”,确定。 看图吧,我用的是英文版本,照猫画虎就是了,具体选项的位置其实都一样:
好了,经过上面的配置后,主机和虚拟机就成了局域网中地位相同的两台机器了,想怎么共享就可以怎么共享了!当然,你可以自己为宿主机(ubuntu)和 虚拟系统(CentOS)来分别配置固定IP,也可以都从DHCP动态获取IP地址。看看我的centos吧,IP地址是: 192.168.1.105