我已经创建了一个 Windows XP 映像,并使用 qemu 启动它。当通过使用“用户模式网络”时-net user
,我的来宾操作系统(windows xp)获得分配的 10.0.2.15 IP,并且我可以 ping 10.0.2.2,以便正确安装 Windows 驱动程序。
不幸的是我无法访问其他任何内容。我阅读了教程,发现“用户模式网络”不会将连接转发到互联网,我必须使用 TAP 设备或桥接设备。
我对这些设备不熟悉,而且教程非常混乱和复杂。
其中一篇教程建议我使用 qemu-bridge-helper。我配置了 /etc/qemu/bridge.conf 以允许 br0 桥接设备并通过brctl addbr br0
.
我按照教程并以这种方式启动我的winxp:
qemu-system-x86_64 --enable-kvm -m 2048 \
-drive file=winxp.img,if=virtio \
-net nic,model=virtio \
-net bridge,br=br0
图像启动良好,但我没有获得 IP 地址。原因是 Windows 配置为使用 DHCP,但“br0”不提供 DHCP 地址,因为它只是一个桥接接口(以某种方式与 tap0 绑定,但我不确定这意味着什么)。
我的问题是 - 如何配置“br0”以通过 DHCP 向 winxp 提供地址?我必须在 tap0 接口上运行 dhcp 服务器吗? br0、tap0 和 eth0 有何关系? (eth0 是我的静态 IP 接口,是唯一的互联网接口。)
我的第二个问题是 - 有没有一种更简单的方法来配置所有这些,以允许对来宾操作系统进行简单的互联网访问?
答案1
我的第二个问题是 - 有没有一种更简单的方法来配置所有这些,以允许对来宾操作系统进行简单的互联网访问?
您不需要(或者至少不应该)为了简单的互联网访问而手动配置任何内容; QEMU 自动处理它。它有一些限制,例如不支持 ICMP 协议(由ping
)、对外部网络不可见、也无法与以相同方式运行的其他虚拟机通信,但它对于简单的使用来说效果很好。请参阅拱门维基了解更多信息。
答案2
在执行命令后,brctl addbr br0
您需要将新网桥连接到真实网络接口,例如eth0
,女巫已连接到互联网。使用下一个命令brctl addif br0 eth0
。