树莓派5(Arm64)TP-Link AC600网卡监听模式下Scapy无法抓包(Pi4正常)
树莓派5(Arm64)使用TP-Link AC600无线网卡Scapy抓包失败的解决方法
问题背景
在树莓派5(Arm64架构)上使用TP-Link AC600无线网卡时,已将wlan1设置为监听模式,但运行以下Scapy代码无法抓取数据包,相同网卡和代码在树莓派4上可正常运行:
from scapy.all import * packets = sniff(iface='wlan1', timeout=10) print(str(packets))
排查与解决步骤
1. 修复内核驱动兼容性
树莓派5的Arm64内核版本较新,TP-Link AC600默认的rtl8812au驱动可能未适配新内核,导致监听模式下无法正常工作。
- 卸载系统默认驱动:
sudo apt purge rtl8812au-dkms - 下载并安装社区维护的、适配Arm64新内核的rtl8812au驱动版本(可通过开源平台搜索“rtl8812au arm64 raspberry pi 5”获取可靠源码),安装流程通常为:
cd <驱动源码目录> sudo ./install-driver.sh sudo reboot - 重启后验证驱动加载:
lsmod | grep 8812au,若有输出则驱动安装成功
2. 重新配置监听模式
部分情况下,简单执行iwconfig设置监听模式可能不彻底,需严格按步骤操作:
sudo ip link set wlan1 down sudo iw dev wlan1 set type monitor sudo ip link set wlan1 up
- 验证模式:
iw dev wlan1 info,确认输出中type字段为monitor
3. 检查Scapy权限与依赖
Arm64环境下Scapy可能存在依赖缺失或权限不足的问题:
- 必须以root权限运行抓包脚本:
sudo python3 your_script.py - 重新安装Scapy及底层依赖:
pip3 uninstall scapy sudo apt install libpcap-dev pip3 install scapy
4. 更新系统与固件
树莓派5的固件或系统组件可能存在兼容性bug,更新后可解决部分问题:
sudo apt update && sudo apt full-upgrade -y sudo rpi-update sudo reboot
更新完成后重新配置监听模式并测试抓包代码
内容的提问来源于stack exchange,提问作者anandyn02
相关产品推荐
相关产品推荐

