Arch Linux 上桥接模式下没有网络的 QEMU VM 客户机

Arch Linux 上桥接模式下没有网络的 QEMU VM 客户机

我尝试使用在 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相同。taphelper=

如果你使用tap没有使用辅助程序(通常在 处找到/usr/lib/qemu/qemu-bridge-helper)的那个,你可能需要一个script=将水龙头奴役到桥接器并设置水龙头up。(换句话说,br=没有设置实际上没有任何效果helper=。)

请注意,助手需要您将要使用的桥列入白allow br0名单/etc/qemu/bridge.conf

有了助手(因为它具有 setuid),就不再需要以 root 身份来设置 tap。

相关内容