Nic*_*ick 7 networking linux qemu bridge
我正在尝试在我的局域网上安装一个 ARM QEMU 系统。我尝试直接从 Windows (Windows 7 x64) 运行 QEMU,除了我无法获得 TAP 适配器来桥接到我的无线连接之外,还成功了。具体来说,Windows 拒绝桥接我的任何网络适配器。
因此,我尝试在 Ubuntu 虚拟机中使用 QEMU(令人惊讶的是,它的速度要快得多,这就是我想坚持使用它的原因)。Ubuntu VM 桥接到我的无线连接,并且工作正常。我已经使用 TAP 设备在 Ubuntu 中设置了一个网桥,我相信它设置正确,但除了从我的 LAN 获取 DHCP 地址之外,它无法正常工作。
我相信存在路由问题,但我无法确定它。
[这里需要一个不那么空的行来让 pre 标签在下面工作......]
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)
Run Code Online (Sandbox Code Playgroud)
QEMU 如下:
我的服务器证实了这一点:
tail /var/log/dnsmasq.leases
1341855255 52:54:00:12:34:56 1.1.1.144 * *
Run Code Online (Sandbox Code Playgroud)
所以 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
Run Code Online (Sandbox Code Playgroud)
这是我用来在 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
Run Code Online (Sandbox Code Playgroud)
在 QEMU 中,我只是将 DHCP 用于 eth0,没有特殊配置。
我做错了吗,我的桥接桥连接怎么办?
小智 4
我知道我迟到了,但我最近遇到了同样的问题。
主要在这里找到解决方案:
http://ajibhpandey.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
Run Code Online (Sandbox Code Playgroud)
现在QEMU可以访问互联网,并且VirtualBox和主机都可以访问。
但无法访问同一局域网内的其他计算机。
由于英语是我的第二语言,任何愿意改进这个答案的人将不胜感激。
归档时间: |
|
查看次数: |
4549 次 |
最近记录: |