5 29 2008

终于把VirtualBox的桥接模式给折腾好了

Published by muzuiget at 9:30 上午 under Network

注意:VirtualBox 2.1.0后的版本又改了,这篇文章的方法不再适用。不过是变得简单了,看Ubuntugeek的教程吧

VirtualBox不像Vmware那样装好就有Bridge模式可用,很是不爽,早在Ubuntu 8.04 Beta就试过自行设置过,参考《VirtualBox桥接网络的配置》,可是总是失败,真机和虚拟机只能一台能上网。去请教作者,可是第二次问作者就不鸟我了,郁闷。还有网上几个方法居然都不相同,这个问题不了了之。

现在Ubuntu 8.04正式版,VirtualBox也升级到1.6.0,再按照那篇文章设置一下,还是那个问题,气啊,可能那个方法只适合Ubuntu 7.10。Goolge搜了一下,还好,Ubuntu官方维基现在有VirtualBox网络设置页面了(还是我当时没找到?),无视原理照抄命令按着做。结果问题解决。

简单记一下,免得以后又忘记要再去看英文,先安装几个包

sudo apt-get install bridge-utils uml-utilities

建立一个bridge

sudo tunctl -t tap1 -u `whoami`

接着

sudo chown root.vboxusers /dev/net/tun
sudo chmod g+rw /dev/net/tun

继续

sudo cp /etc/udev/rules.d/20-names.rules /etc/udev/rules.d/20-names.rules.backup
sudo vim /etc/udev/rules.d/20-names.rules

把最后一行的

KERNEL=="tun",                          NAME="net/%k"

修改为

KERNEL=="tun",                          NAME="net/%k",  GROUP="vboxusers",     MODE="0660"

继续命令,设置网卡为混杂模式

sudo brctl addbr br0
sudo ifconfig eth0 0.0.0.0 promisc
sudo brctl addif br0 eth0

开启DCHP就运行

sudo dhclient br0

如果用静态IP的就运行

sudo ifconfig br0 192.168.1.105 netmask 255.255.0.0
sudo route add default gw 192.168.1.1 br0

接下来就是

sudo brctl addif br0 tap1
sudo ifconfig tap1 up

最后在VirtualBox里的虚拟机网络设置“网络连接方式”选择“host interface”,“host interface 名称”为“tap1“就行了,大功告成。

补充:
重启之后又不行了,结果还是要运行一次上边的命令,写成script好了,然后加上sudo运行

#!/bin/bash
tunctl -t tap1 -u `whoami`
chmod 0666 /dev/net/tun
brctl addbr br0
ifconfig eth0 0.0.0.0 promisc
brctl addif br0 eth0
dhclient br0
brctl addif br0 tap1
ifconfig tap1 up

不知道修改“20-names.rules”有什么含义,我看其他教程也是不用修改的。

2 Responses to “终于把VirtualBox的桥接模式给折腾好了”

  1. gududehuoon 09 6 2008 at 11:33 下午

    呵呵,看楼主也是老鸟了也有解决不了的问题,给个链接就是设置virtualbox桥接的,我找着作成功了,http://www.oceanboo.cn/read.php/55.htm

  2. muzuigeton 10 6 2008 at 11:53 上午

    @gududehuo
    我看了你给的网址,方法是跟我之前看的文章相似,不过在8.04下失败了,那篇文章的评论也有人反应。

Trackback URI | Comments RSS

Leave a Reply