如何讓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

相關內容