我一直在尝试在当前的 Arch Linux (5.13.12-arch1-1) 主机系统中设置 Windows 10 VM。我使用 libvirt 和 KVM/QEMU 设置 VM,并使用 virt-manager 作为 GUI。
NIC 卡已设置为“虚拟网络‘默认’NAT”并使用“virtio”设置。但是,即使在 Windows 上更新驱动程序后,它仍无法连接到互联网并显示“未识别网络 - 无法访问互联网”。
ip link
Arch 中的输出
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: wlo1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DORMANT group default qlen 1000
link/ether aa:aa:aa:aa:aa:aa brd ff:ff:ff:ff:ff:ff
altname wlp0s20f3
10: virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
link/ether bb:bb:bb:bb:bb:bb brd ff:ff:ff:ff:ff:ff
11: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master virbr0 state UNKNOWN mode DEFAULT group default qlen 1000
link/ether cc:cc:cc:cc:cc:cc brd ff:ff:ff:ff:ff:ff
virsh net-dumpxml default
Arch 中的输出
<network connections='1'>
<name>default</name>
<uuid>a145acdf-7624-40c5-af1f-b88bfc33bcc6</uuid>
<forward mode='nat'>
<nat>
<port start='1024' end='65535'/>
</nat>
</forward>
<bridge name='virbr0' stp='on' delay='0'/>
<mac address='dd:dd:dd:dd:dd:dd'/>
<ip address='192.168.122.1' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.122.2' end='192.168.122.254'/>
<host name='Windows10' ip='192.168.122.2'/>
</dhcp>
</ip>
</network>
已经完成了-
sudo pacman -S iptables-nft nftables dhclient
sudo systemctl enable/start libvirt.service
sudo systemctl enable/start dnsmasq.service
virsh net-autostart default
virsh net-start default
virsh net-dhcp-leases default
显示没有为虚拟机分配 IP。到目前为止,我还不知道如何修复这个问题。
*MAC地址已更改
答案1
同样的问题,似乎是驱动程序问题。这帮我解决了这个问题:
如果你还没有完成,请下载 Windows VirtIO 驱动程序 ISO(“稳定的 virtio-win ISO”对我来说很管用)并附加到客户 CD 驱动器:https://github.com/virtio-win/virtio-win-pkg-scripts/blob/master/README.md
在 Win 10 客户机中,打开设备管理器并查找带有黄色三角形的网络适配器。如果它显示为“以太网控制器”,请跳至步骤 3。否则,如果它被识别为带有黄色三角形的“Red Hat VirtIO 以太网适配器”:右键单击 -> 删除设备并选中“删除驱动程序”。刷新设备管理器。现在它应该只显示为“以太网控制器”,可能位于顶部。
仍在设备管理器中,右键单击“以太网控制器”-> 更新驱动程序-> 搜索我的电脑。当系统询问路径时,导航到您的 CD 驱动器 -> NetKVM -> w10 -> 您可能拥有的任何架构(在我的情况下,完整路径是
D:\NetKVM\w10\amd64
)。
现在应该安装正确的 virtio 网络适配器驱动程序并为您提供互联网访问权限。有关参考,请参阅: https://access.redhat.com/articles/2470791
答案2
显然,libvirt 不能很好地处理 nftables [1]。
您需要使用旧版后端 [2]。这些是必需的软件包
iptables ebtables dnsmasq firewalld
我还必须启用防火墙才能使网络正常运行。