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

KVM QEMU:为虚拟机配置无过滤的完整网络访问

问题原因分析

macvtap接口的默认逻辑是仅将目标MAC与自身接口MAC匹配的数据包传递给虚拟机,即便开启了PROMISC模式也无法改变这一行为——macvtap的混杂模式仅对多播/广播帧生效,不会捕获目标MAC为其他设备的单播帧。这就是物理机发往client虚拟机的单播数据包,宿主机物理网卡能抓到,但switch虚拟机的macvtap接口无法接收的核心原因。

解决方法

针对switch虚拟机的macvtap接口,需启用accept-all特性,强制接口接收所有路过的数据包:

  1. 在switch虚拟机内,查看目标macvtap接口的accept-all状态:
    ethtool -k <macvtap接口名称> | grep accept-all
    
  2. 若状态为off,执行命令开启:
    ethtool -K <macvtap接口名称> accept-all on
    
  3. 再次执行第一步命令,确认accept-all已变为on。
额外验证点
  • 确保宿主机物理网卡除PROMISC外,还开启allmulti(用于多播帧转发,可选):
    ip link set dev <宿主机物理接口> allmulti on
    
  • 排查switch虚拟机内的nftables规则(若未排查过),临时清空测试是否存在过滤:
    nft flush ruleset
    

内容的提问来源于stack exchange,提问作者ChPortos

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 22:05:58