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

Ubuntu Server 24.04下使用WiFi接口创建KVM虚拟网络失败求助

Ubuntu Server 24.04下使用WiFi接口创建KVM虚拟网络失败求助

嗨,我来帮你捋捋这个问题~你遇到的错误本质是libvirt自带的dnsmasq实例启动失败,和你之前为了Pi-Hole修改的DNS设置直接相关,下面给你两种解决思路,你可以根据自己的需求选:

思路一:用桥接模式绕开dnsmasq(最适合你的需求)

因为你只需要虚拟机连家庭网络,不需要主机和虚拟机通信,那直接把虚拟机网卡桥接到WiFi接口是最省事的,完全不用碰libvirt的dnsmasq:

  • 先确认主机WiFi接口的名字,比如用ip link show看,一般是wlan0或者wlp2s0
  • 编辑Ubuntu的netplan配置文件(默认路径是/etc/netplan/00-installer-config.yaml),改成桥接配置:
    network:
      version: 2
      ethernets:
        wlan0:  # 这里换成你的WiFi接口名
          dhcp4: no
          optional: true
      bridges:
        br0:
          interfaces: [wlan0]
          dhcp4: yes  # 让桥接设备自动获取家庭路由器的IP
          optional: true
    
  • 应用配置:sudo netplan apply
  • 之后创建/修改KVM虚拟机时,把网络接口直接选成br0,虚拟机就能直接获取家庭路由器分配的IP,完全融入家庭网络,再也不会有dnsmasq的冲突问题了。

思路二:修改libvirt虚拟网络配置,解决dnsmasq冲突

如果你非要用libvirt默认的NAT虚拟网络,那得调整它的dnsmasq设置,避免和Pi-Hole抢端口:

  1. 先停止当前的默认虚拟网络:sudo virsh net-destroy default
  2. 编辑虚拟网络的XML配置:sudo virsh net-edit default
  3. 在配置里添加一行<dns enable="no"/>,直接禁用libvirt的DNS服务(反正你用Pi-Hole当DNS),修改后的配置大概是这样:
    <network>
      <name>default</name>
      <uuid>xxxxxx-xxxx-xxxx-xxxx-xxxxxx</uuid>
      <forward mode="nat" dev="wlan0"/> <!-- 这里指定用WiFi接口做转发 -->
      <bridge name="virbr0" stp="on" delay="0"/>
      <dns enable="no"/> <!-- 关键:禁用自带DNS -->
      <ip address="192.168.122.1" netmask="255.255.255.0">
        <dhcp>
          <range start="192.168.122.2" end="192.168.122.254"/>
        </dhcp>
      </ip>
    </network>
    
  4. 保存后启动虚拟网络:sudo virsh net-start default
  5. 最后记得给虚拟机手动指定DNS服务器为Pi-Hole的IP,不然虚拟机没法解析域名。

另外要提一句:有些消费级WiFi网卡不支持桥接模式,如果用思路一遇到问题,就换思路二试试~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.16 13:09:36