我正在尝试在我的 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
- Ubuntu 12.04 32 位虚拟机
我认为存在路由问题,但我无法查明原因。
- 我的 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 和主机也可以访问它。
但不能访问同一局域网内的其他计算机。
由于英语是我的第二语言,因此任何愿意改进这个答案的人都会受到感谢。