在utm中配置virtio-net网卡需两步:一是将虚拟机网络设备模型设为virtio-net-pci,禁用e1000等传统网卡;二是确保客户机驱动就绪——linux内核默认支持,可用lspci和lsmod验证;windows则必须通过virtio-win iso在安装阶段加载netkvm驱动,否则无法识别网卡。
在 utm 中配置 virtio-net 网卡,核心是两步:改虚拟机设置 + 确保客户系统能识别驱动。不配对或只配一半,常出现“无网络”“只有 lo 回环接口”等问题。
UTM 里选对网卡模型
编辑虚拟机 → 进入“网络”设置页 → 找到“模拟网卡(Emulated Network Card)”选项 → 将其设为 virtio-net-pci(或简写为 virtio-net)。不要选 e1000、rtl8139 或其他传统模拟网卡。桥接(Bridged)或共享(Shared)模式下都支持 virtio-net,但需注意:若用桥接,还要确认“桥接接口(Bridged Interface)”选对了宿主物理网卡(如 en0、en1 或 en9),否则即使驱动加载成功也可能不通外网。
Linux 客户机无需额外装驱动
主流发行版(Ubuntu、Debian、CentOS/RHEL 7+、Fedora、Arch)的内核默认已内置 virtio-net 模块。启动后执行:
- lspci | grep -i virtio —— 应看到 “Virtio network device”
- lsmod | grep virtio_net —— 应有输出,说明模块已加载
- ip a —— 应出现类似 ens3、ens4 的非 lo 网卡接口
若只有 lo,大概率是 NetworkManager 配置屏蔽了 virtio 网卡(尤其在最小化安装时)。可临时运行 sudo dhclient $(ip -br l | grep UP | awk '{print }') 获取 IP,再检查 /etc/NetworkManager/conf.d/ 下是否有规则排除了 eth* 或 ens* 接口。
Windows 客户机必须手动加载驱动
Windows 默认不带 virtio-net 驱动,安装阶段就无法识别网卡。操作关键点:
- 创建虚拟机时,在“驱动器”里挂载 virtio-win ISO(从 https://fedorapeople.org/groups/virt/virtio-win/draft/ 下载最新版)
- 安装 Windows 过程中,当提示“找不到磁盘驱动器”或“未找到网络适配器”时,点击“加载驱动程序” → 浏览 ISO 中的 NetKVM/w10/amd64/(对应 Win10/11 64位)目录 → 选中.inf 文件继续
- 装完系统后,建议运行 ISO 中的 virtio-win-guest-tools.exe,一并安装服务、时间同步、Balloon 内存管理等组件
验证和排错小技巧
配置完成后,别急着重启,先快速验证:
- Linux 下运行 dmesg | grep -i virtio,看是否有 “virtio_net virtioX: initialized” 类似日志
- Windows 设备管理器里,“网络适配器”下应显示 “Red Hat VirtIO Ethernet Adapter”,且无黄色感叹号
- 若 ping 不通局域网,检查 UTM 网络模式是否与宿主机网络环境匹配(例如桥接模式下,虚拟机需与 Mac 在同一子网)










