本文转自http://hi.baidu.com/jiyeqian/blog/item/17d52ff95837ee5c252df29a.html



2008-06-02 19:41
一、Ubuntu中配置网桥使virtualbox虚拟机联网的简单方法(当然也可以不使用桥接而使用其它方法)
0.简单的总结
第一步:安装bridge-utils、uml-utilities包
第二步:将运行虚拟机的用户添加到uml-net组
第三步:在/etc/network/interfaces中添加配置
auto tap0
iface tap0 inet manual
    up ifconfig $IFACE 0.0.0.0 up
    down ifconfig $IFACE down
    tunctl_user hotking

auto br0
iface br0 inet static
    address 192.168.1.144
    netmask 255.255.255.0
    gateway 192.168.1.1
       bridge_ports all eth0 tap0
第四步:sudo /etc/init.d/networking restart
第五步、第六步参考下文
注:更可靠的方法是直接参考VirtualBox的使用手册
1.较详细的说明
第一步,安装必备的工具(若已安装可跳过):
(1)安装uml-utilities,该工具包含建立虚拟网络设备(所谓的“TAP interfaces”)的工具:
sudo apt-get install uml-utilities
(2)安装桥接工具bridge-utils:
sudo apt-get install bridge-utils
第二步,为了使你的虚拟机能够访问网络接口,你必须将运行虚拟主机的用户的用户名(通常是你的ubuntu登录用户名)添加到uml-net用户组。命令行的运行方法是(请用你的用户名替换其中的“vboxuser”):
sudo gpasswd -a vboxuser uml-net(默认情况下已经加入,可不执行该命令)
你也可以通过gnome面板上的“系统—系统管理—用户和组”来添加,方法从略。
请注意:为了使改动生效,请重新启动你的电脑(一定要重启计算机,也可以在所有步骤完成之后重启计算机)。
第三步,向你的ubuntu操作系统描述你要添加的虚拟网络设备:
sudo gedit /etc/network/interfaces
在打开的文件后面添加下面的内容(请用你的用户名替换其中的“vboxuser”),保存好:
auto tap0
iface tap0 inet manual
up ifconfig $IFACE 0.0.0.0 up
down ifconfig $IFACE down
tunctl_user vboxuser

auto br0
iface br0 inet dhcp
bridge_ports all tap0
上面第一部分的大概意思是将虚拟网络接口命名为“tap0”,指定该接口IP配置方法为手动,并指定使用该接口的用户。第二部分的大概意思是建立一个名叫 “br0”的桥,该桥的IP配置方法为通过DHCP配置,主机中的所有网络接口,也包括tap0这个虚拟网络接口,都将建立在这个桥之上。
第四步,激活刚才建立的虚拟网络接口和网络桥:
sudo /sbin/ifup tap0
sudo /sbin/ifup br0
这个步骤只需要做一次,下次主机重新启动时,这个接口和桥将自动激活。
第五步,启动virtualbox,在主界面上选中要使用刚才建立的虚拟网络接口tap0的虚拟机,点“设置”,在弹出的窗口中选“网络”,选中其中一块 网卡(通常为“网络适配器 0”),选中“启用网络适配器”,“连接到”后面选“Host Interface”,选中“接入网线”,然后在“主机网络界面名称”中填入刚才建立的虚拟网络接口的名字“tap0”,确定。
第六步,配置主机和虚拟机的网络。这步太简单了,两者你想怎么配置怎么配置。无论是主机,还是虚拟机,都是既可以手工指定静态IP,也可以从DHCP动态获取IP地址(当然,主机和虚拟机应该在同一个网段)。不过前提是要你的网管放行才行!
2.其它方法(www.linuxsir.org/bbs/showthread.php
二、使用中遇到的一些问题
1.
Problem:
Unknown error creating VM (VERR_HOSTIF_INIT_FAILED).
VBox status code: -3100 (VERR_HOSTIF_INIT_FAILED).
Solution:
while trying to start your VirtualBox on Ubuntu, then it's probably because the user by which VirtualBox is running does not have read/write permissions on /dev/net/tun. To solve the problem run this commands:
sudo chgrp vboxusers /dev/net/tun
sudo chmod 660 /dev/net/tun
then add the user that is going to use VirtualBox to the vboxusers group.
2.提示需要安装virtualbox-ose-modules-*
参考:forums.virtualbox.org/viewtopic.php     forum.ubuntu-nl.org/message/263051
解决方法:
(1)安装virtualbox-ose-modules-*
(2)如果virtualbox-ose-modules-*版本和当前系统内核版本不一致,则需要运行:sudo insmod /lib/modules/2.6.24-17-generic/misc/vboxdrv.ko(我的系统内核是 2.6.24-18,virtualbox-ose-modules-*是2.6.24-17)
(3)vboxdrv相关的命令:
/etc/init.d/vboxdrv setup
/etc/init.d/vboxdrv stop
/etc/init.d/vboxdrv restart
3.host和guest机不能同时发声的问题:驱动用alsa,两个系统可以同时发声。