Scapy无法检测已安装的Npcap/WinPcap,求排查方案
解决Scapy在Windows 11虚拟机中提示"No libpcap provider available"的排查思路
运行基于Scapy的Python脚本时出现警告:
WARNING: No libpcap provider available ! pcap won't be used,最简复现代码为:from scapy.arch.windows import *环境:Windows 11(AMD64,Parallels虚拟机)、Python 3.8.0、Npcap 1.79,已通过Nmap 7.95验证Npcap可用,尝试过WinPcap兼容模式安装Npcap,问题仍存在。
以下是可行的排查思路:
检查Python与Npcap的架构匹配
确认你的Python是64位版本(对应AMD64架构)——32位Python无法调用64位Npcap。在CMD里执行python -c "import platform; print(platform.architecture())",看输出是不是('64bit', 'WindowsPE')。验证Scapy能否找到Npcap的核心DLL
Npcap默认装在C:\Program Files\Npcap,里面的wpcap.dll和packet.dll是Scapy必须的。- 检查系统
PATH环境变量有没有包含C:\Program Files\Npcap,没有的话手动加上,重启CMD再跑脚本。 - 也可以直接把这两个DLL复制到Python的
Lib\site-packages\scapy\arch\windows目录(先备份原文件),再测试。
- 检查系统
重装适配版本的Scapy
确保Scapy版本和Python 3.8兼容,推荐装2.5.0版本:先卸载现有Scapypip uninstall -y scapy,再执行pip install scapy==2.5.0,避免新版本的适配问题。调整虚拟机网络模式与运行权限
- 把Parallels的网络模式改成桥接模式,别用共享网络——共享网络下虚拟机的网络权限受限,可能导致Scapy调用Npcap失败。
- 用管理员身份打开CMD再运行脚本,抓包需要系统级权限,普通用户可能加载不了Npcap驱动。
检查Npcap的安装与服务状态
- 卸载现有Npcap,重装时勾选
Install Npcap in WinPcap API-compatible Mode和Start Npcap service at boot time,装完重启虚拟机。 - 按下Win+R输入
services.msc,找到Npcap Packet Driver服务,确认它是正在运行的状态。
- 卸载现有Npcap,重装时勾选
用Scapy内置命令诊断
- 执行
python -c "from scapy.all import *; print(conf.ifaces)",看能不能列出虚拟机的网卡。如果列不出来,说明Scapy还是没识别到Npcap。 - 试试发送一个简单数据包:
python -c "from scapy.all import *; send(IP(dst='127.0.0.1')/ICMP())",看有没有新的报错,方便进一步定位问题。
- 执行
内容的提问来源于stack exchange,提问作者Rolf
相关产品推荐
相关产品推荐

