我尝试使用在 Arch Linux 中通过我的 QEMU VM 客户机创建网络桥接模式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 客户机:
# 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 客户机启动正确但没有网络: 捕获
答案1
您应该使用netdev,据我所知,它与正确设置参数的 netdevbridge
相同。tap
helper=
如果你使用tap
没有使用辅助程序(通常在 处找到/usr/lib/qemu/qemu-bridge-helper
)的那个,你可能需要一个script=
将水龙头奴役到桥接器并设置水龙头up
。(换句话说,br=
没有设置实际上没有任何效果helper=
。)
请注意,助手需要您将要使用的桥列入白allow br0
名单/etc/qemu/bridge.conf
。
有了助手(因为它具有 setuid),就不再需要以 root 身份来设置 tap。