我尝试使用 Arch Linux 中的 QEMU VM guest 创建网桥模式systemd-networkd
。
首先,我在 Arch Linux 中创建桥接模式:
# nano /etc/systemd/network/br0.netdev
[NetDev]
Name=br0
Kind=bridge
MACAddress=[My_own_MAC_address]
[Bridge]
VLANFiltering=1
STP=1
# nano /etc/systemd/network/br0enp2s0.network
[Match]
Name=enp2s0
[Network]
Bridge=br0
# nano /etc/systemd/network/br0.network
[Match]
Name=br0
[Network]
DHCP=ipv4
# systemctl restart systemd-networkd.service
# systemctl restart NetworkManager.service
# systemctl restart systemd-networkd.service
其次,我在 Arch Linux 中配置并运行 QEMU VM guest:
# qemu-system-x86_64 \
-monitor stdio \
-cpu host \
-device intel-hda \
-device hda-duplex \
-k es \
-machine accel=kvm \
-m 2048 \
-hda ~/Windows.7.qcow2 \
-boot once=c,menu=off \
-netdev tap,id=tap_0_GROUP,br=br0,ifname=tap_0_GROUP,script=no,vhost=on,downscript=no \
-device virtio-net-pci,netdev=tap_0_GROUP,mac=[My_own_MAC_address] \
-usb -device usb-tablet \
-rtc base=localtime \
-name "Windows 7"
QEMU 8.1.2 monitor - type 'help' for more information
(qemu)
QEMU 客户机正确启动但没有网络: 捕获
您应该使用netdev,据我所知,它与正确设置参数的netdev
bridge
相同。tap
helper=
如果您
tap
在不使用助手的情况下使用该助手(通常在/usr/lib/qemu/qemu-bridge-helper
),您可能需要一个script=
将水龙头从属于桥接器并设置水龙头up
。(换句话说,如果br=
没有设置,则实际上没有任何效果helper=
。)请注意,帮助程序需要您将要使用的桥列入白名单,方法是
allow br0
在/etc/qemu/bridge.conf
.使用帮助程序(因为它具有 setuid),也无需成为 root 来设置水龙头。