关键点:1. IP配置在网桥上,而不是eth0。 2 开混杂模式
优点是:外部主机可以直接访问guest系统
步骤如下: (以下命令均用root用户执行)
1. 安装uml-utilities和bridge-utils和,这两个工具分别含有tunctl和brctl命令
apt-get install uml-utilities bridge-utils
2. 生成一个新的TAP接口
tunctl -t tap1 -u <username>
这里<username>是你想用bridge联网方式启动VirtualBox的那个用户的用户名
比如我的是: tunctl -t tap1 -u ypxing
3. 生成一个叫做br0的bridge
brctl addbr br0
4. 把你的真实网卡设成promiscuous模式,使得它能够接收发送到别的MAC地址的帧
ifconfig eth0 0.0.0.0 promisc
5. 把你的真实网卡加到bridge br0的一端
brctl addif br0 eth0
6. 把你的真实网卡的配置设置到br0上, 比如我的eth0的ip地址是192.168.168.60
ifconfig br0 192.168.168.60
如果你的是通过DHCP配置的,则执行dhclient br0即可
7. 把上面生成的TAP接口加到 bridge br0的另一端
brctl addif br0 tap1
8. 激活TAP
ifconfig tap1 up
9. 设置/dev/net/tun的读写权限
chmod 0666 /dev/net/tun
经过以上几步之后,在你的guest系统启动之前,将它的Network的Adapter0设成
HostInterface,然后Interface Name那一栏天上tap1
启动guest系统,在该系统中,将你的ip地址设成跟Host系统的eth0在一个局域网就可以了
真实主机配置
[root@backfire-main protobuff]# ifconfig -a
br0 Link encap:Ethernet HWaddr 34:2S:A4:F7:41:C2 建立的网桥
inet addr:192.168.1.55 Bcast:192.168.1.255 Mask:255.255.255.0
eth0 Link encap:Ethernet HWaddr 34:2S:A4:F7:41:CB
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
virbr0 Link encap:Ethernet HWaddr 52:54:00:D8:83:64
inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0
virbr0-nic Link encap:Ethernet HWaddr 52:54:00:D8:83:64
vnet0 Link encap:Ethernet HWaddr FE:54:00:C5:ED:D2
vnet1 Link encap:Ethernet HWaddr FE:54:00:A3:21:33 虚拟机1对应在主机上的网络接口
RX bytes:4838367 (4.6 MiB) TX bytes:45977393 (43.8 MiB)
vnet2 Link encap:Ethernet HWaddr FE:54:00:2B:CC:EE 虚拟机2对应在主机上的网络接口
RX bytes:298816484 (284.9 MiB) TX bytes:398246993 (379.7 MiB)