You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Libvirt NAT模式下KVM/QEMU Windows虚拟机无网络连接问题求助

Libvirt NAT模式下KVM/QEMU Windows虚拟机无网络连接问题求助

Hello super users,

我现在正尝试让KVM/QEMU虚拟机通过Libvirt默认的NAT模式连上互联网,但遇到了麻烦:Windows 10虚拟机把虚拟适配器识别为**“未识别网络”,显示“无互联网”**。从ipconfig的输出(如下)能看出VM的DHCP工作异常——子网掩码(原本应该是255.255.255.0)和自动分配的IPv4地址(应该在192.168.122.2到192.168.122.254之间)都配置错误:

Ethernet adapter Ethernet 2:

Connection-specific DNS Suffix  . :

Autoconfiguration IPv4 Address. . : 169.254.81.241

Subnet Mask . . . . . . . . . . . : 255.255.0.0

Default Gateway . . . . . . . . . :

主机上VM运行时执行ip a的输出:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

inet 127.0.0.1/8 scope host lo

valid_lft forever preferred_lft forever

inet6 ::1/128 scope host

valid_lft forever preferred_lft forever

2: enp3s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000

link/ether f0:2f:74:1b:5b:aa brd ff:ff:ff:ff:ff:ff

3: virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000

link/ether 52:54:00:5b:92:9a brd ff:ff:ff:ff:ff:ff

inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0

valid_lft forever preferred_lft forever

4: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000

link/ether d0:37:45:d8:fb:9a brd ff:ff:ff:ff:ff:ff

inet 192.168.0.127/24 metric 20 brd 192.168.0.255 scope global dynamic wlan0

valid_lft 603733sec preferred_lft 603733sec

inet6 fe80::d237:45ff:fed8:fb9a/64 scope link

valid_lft forever preferred_lft forever

6: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master virbr0 state UNKNOWN group default qlen 1000

link/ether fe:54:00:d4:cd:4e brd ff:ff:ff:ff:ff:ff

inet6 fe80::fc54:ff:fed4:cd4e/64 scope link

valid_lft forever preferred_lft forever

主机执行ip r的输出:

default via 192.168.0.1 dev wlan0 proto dhcp src 192.168.0.127 metric 20

192.168.0.0/24 dev wlan0 proto kernel scope link src 192.168.0.127 metric 20

192.168.0.1 dev wlan0 proto dhcp scope link src 192.168.0.127 metric 20

192.168.0.56 dev wlan0 proto dhcp scope link src 192.168.0.127 metric 20

192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1

这事儿有点奇怪,因为网桥virbr0是正常启动的,虚拟接口vnet0也已经挂载到它上面了。为了修复配置错误,我手动设置了静态LAN参数,这时候能ping通主机(192.168.0.127)和网桥(192.168.122.1),但ping外网服务器比如google.com或者8.8.8.8都会超时。

是不是这说明virbr0能正常工作并转发数据包,但防火墙不允许虚拟网桥把数据包发送到默认网关?

相关配置信息:

  • nftables规则:执行nft list ruleset获取的规则集
  • virbr0配置文件:/etc/libvirt/qemu/networks/default.xml
  • Libvirt日志文件:/var/log/libvirt/libvirtd.log
  • vnet0配置(VM运行时):/etc/libvirt/qemu/win10.xml

我已经尝试过的解决方法:

  • 安装并启用了dnsmasq(现在dnsmasq的错误已经消失)
  • 执行sysctl -w net.ipv4.ip_forward=1并将配置写入/etc/sysctl.conf

提前感谢各位抽出时间帮忙!

limefrog :)))


备注:内容来源于stack exchange,提问作者limefrog

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 11:02:39