如何让qemu中的guest OS访问互联网?

如何让qemu中的guest OS访问互联网?

我已经创建了一个 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

相关内容