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

Windows11下Scapy发送数据包时无法设置混杂模式报错求助

解决Windows11下Scapy设置混杂模式失败的OSError(31)问题

问题情况

Windows11系统中,以管理员权限启动Scapy交互模式,发送Ethernet层数据包时触发以下错误:

OSError: \Device\NPF_{21330BA1-83F1-4778-B42D-89E43A29CE77}: failed to set hardware filter to promiscuous mode: Ein an das System angeschlossenes Gerät funktioniert nicht. (31)

执行代码:

b = Ether(dst = "ff:ff:ff:ff:ff:ff")
send(b)

可行解决方案

1. 用对发送函数+关闭混杂模式

你发送的是Ethernet层帧,需使用sendp()而非send()——send()是针对IP层数据包的专用函数。同时强制关闭混杂模式,避免触发硬件层面的设置错误:

b = Ether(dst = "ff:ff:ff:ff:ff:ff")
# 替换为你的LAN网卡名称,可通过show_interfaces()命令查看所有可用网卡
sendp(b, promisc=False, iface="Realtek PCIe GbE Family Controller")

2. 重置NPF服务

Scapy依赖的NPF(网络数据包过滤)服务可能出现异常,执行以下步骤重置:

  • 以管理员身份打开命令提示符
  • 输入net stop npf停止服务
  • 再输入net start npf重新启动服务

3. 更新网卡驱动

错误码31明确提示设备无法正常工作,大概率是网卡驱动与Windows11兼容性问题:

  • 打开「设备管理器」→ 找到「网络适配器」分类下的LAN网卡
  • 右键选择「更新驱动程序」,优先安装网卡厂商官网提供的最新驱动版本

4. 替换WinPcap为Npcap

WinPcap已停止维护,对Windows11的支持存在缺陷,建议更换为Npcap:

  • 先卸载电脑中已安装的WinPcap
  • 下载Npcap官方安装包,安装时勾选「Install Npcap in WinPcap API-compatible Mode」,确保Scapy可以兼容调用

5. 检查网卡混杂模式支持

部分轻薄本的集成网卡可能本身不支持混杂模式,或需要在BIOS中手动开启:

  • 查询你的网卡型号参数,确认是否支持混杂模式
  • 重启电脑进入BIOS界面,查找「Network」相关设置选项,确认是否有开启混杂模式的开关

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 12:12:48