VirtualBox 中的 QEMU 以及桥接连接

VirtualBox 中的 QEMU 以及桥接连接

我正在尝试在我的 LAN 上安装 ARM QEMU 系统。我尝试直接从 Windows(Windows 7 x64)运行 QEMU,成功了,但我无法让 TAP 适配器桥接到我的无线连接。具体来说,Windows 拒绝桥接我的任何网络适配器。

因此,我尝试在 Ubuntu 虚拟机中使用 QEMU(令人惊讶的是,它的速度要快得多,这就是我想坚持使用它的原因)。Ubuntu VM 桥接到我的无线连接,工作正常。我已经使用 TAP 设备在 Ubuntu 中设置了一个桥接器,我相信它设置正确,但除了从我的 LAN 获取 DHCP 地址外,它不起作用。

  • Windows 7 x64 主机
    • Ubuntu 12.04 32 位虚拟机
      • 运行 Debian Squeeze 的 QEMU ARM

我认为存在路由问题,但我无法查明原因。

  • 我的 LAN 设置为 DHCP 1.1.1.0/24,网关是 1.1.1.1(是的,这很愚蠢,但这不是问题)
  • Ubuntu 具有以下配置:

[此处需要一个不太空的行,以便预标签能够在下面发挥作用……]

br0 Link encap:Ethernet  HWaddr 08:00:27:74:6b:ec  
inet addr:1.1.1.16  Bcast:1.1.1.255  Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe74:6bec/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:3135 errors:0 dropped:0 overruns:0 frame:0
TX packets:967 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0 
RX bytes:681918 (681.9 KB)  TX bytes:79747 (79.7 KB)

eth1 Link encap:Ethernet  HWaddr 08:00:27:74:6b:ec  
inet6 addr: fe80::a00:27ff:fe74:6bec/64 Scope:Link
UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
RX packets:14249 errors:0 dropped:0 overruns:0 frame:0
TX packets:5850 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000 
RX bytes:15166414 (15.1 MB)  TX bytes:431255 (431.2 KB)

tap1 Link encap:Ethernet  HWaddr 96:f3:2d:ae:c8:08  
inet6 addr: fe80::94f3:2dff:feae:c808/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:161 errors:0 dropped:0 overruns:0 frame:0
TX packets:2262 errors:0 dropped:3 overruns:0 carrier:0
collisions:0 txqueuelen:500 
RX bytes:12144 (12.1 KB)  TX bytes:262799 (262.7 KB)

QEMU如下:

在此处输入图片描述

我的服务器也确认了这一点:

tail /var/log/dnsmasq.leases
1341855255 52:54:00:12:34:56 1.1.1.144 * *

因此 QEMU 获得了一个 IP 地址,但是似乎没有连接:

root@arm-emu:~# ping google.com
ping: unknown host google.com

root@arm-emu:~# ping 1.1.1.1
From 1.1.1.144 Destination Host Unreachable

这是我在 Ubuntu 中设置桥接器的方法:

tunctl -t tap1 -u root
brctl addbr br0
ifconfig eth1 0.0.0.0 promisc
brctl addif br0 eth1
dhclient br0
brctl addif br0 tap1
ifconfig tap1 up

在 QEMU 中,我只是对 eth0 使用 DHCP,没有特殊配置。

我这样做是否错误?我的桥接连接怎么样?

答案1

我知道我迟到了,但是我最近遇到了同样的问题。

主要在这里找到解决办法:

http://ajitabhpandey.info/2007/07/interconnecting-qemu-and-virtualbox-virtual-machines/

关键步骤是在桥接接口上启用 IP 转发和设置 MASQUERADING:

$ echo "1" > /proc/sys/net/ipv4/ip_forward
$ sudo iptables -t nat -A POSTROUTING -o br0 -j MASQUERADE

现在 QEMU 可以访问互联网,并且 VirtualBox 和主机也可以访问它。

但不能访问同一局域网内的其他计算机。

由于英语是我的第二语言,因此任何愿意改进这个答案的人都会受到感谢。

相关内容