Ubuntu 上抓包嗅探器的兼容性处理指南
一、先明确你的“Sniffer”类型与系统环境
- 明确目标:是有线/无线网卡抓包、应用层协议嗅探(如 MySQL、HTTP),还是GUI 工具(如 Wireshark)。
- 确认环境:执行
lsb_release -a查看Ubuntu 版本,执行uname -r查看内核版本,执行lspci | grep -i wireless或lsusb确认网卡型号/芯片,执行iwconfig或ip a确认网卡接口名(如wlp0s20f3、wlan0)。
- 选择工具:无线抓包优先用aircrack-ng 套件 + Wireshark;应用层协议嗅探可用mysql-sniffer等专用工具;通用抓包用tcpdump/Wireshark。
二、无线抓包的兼容性要点(Wi‑Fi)
- 硬件前提:网卡芯片必须支持监听模式(Monitor)与所需带宽(如HT40/80MHz)。老旧或仅支持2.4GHz的网卡在5GHz/宽带宽场景会受限。
- 驱动与工具:使用mac80211驱动的现代无线网卡(如Intel iwlwifi)在 Ubuntu 上配合aircrack-ng可稳定切换至监听模式。
- 正确开启监听模式的步骤:
- 关闭干扰进程:
sudo airmon-ng check kill
- 启动监听:
sudo airmon-ng start <接口名>(如wlp0s20f3),生成wlp0s20f3mon
- 抓包:用Wireshark选择wlp0s20f3mon开始捕获
- 设定信道与带宽:例如
iw dev wlp0s20f3mon set freq 5500 80MHz(对应100 信道、80MHz)
- 结束抓包后切回:
sudo airmon-ng stop wlp0s20f3mon,再由 NetworkManager 恢复连接
- 常见兼容性问题与对策:
- 接口名不是wlan0而是wlpXsY等新命名,工具参数需随之调整。
- 无法锁定信道或带宽:确认网卡/驱动对HT40/80MHz的支持,必要时降低为20MHz以提升稳定性。
- 抓不到管理/控制帧:确保进入Monitor而非Managed模式,且未与 NetworkManager/wpa_supplicant 抢占接口。
三、应用层嗅探器(以 mysql-sniffer 为例)的兼容性处理
- 依赖安装:构建时常见缺libpcap-dev、libnet-dev、libglib2-dev等开发库,先
apt-get install补齐。
- 头文件与链接问题:
- 若报缺glibconfig.h,可将其从**/usr/lib/x86_64-linux-gnu/glib-2.0/include/拷贝到/usr/include/glib-2.0/**(适用于部分发行版/版本差异)。
- 若出现
DSO missing from command line(如libpthread.so.0相关),在CMakeLists.txt中显式链接pthread后重编译。
- 运行与权限:
- 绑定网卡需root或具备CAP_NET_RAW能力;建议按需使用sudo运行。
- 指定接口与端口示例:
./mysql-sniffer -i lo -p 3306 或 ./mysql-sniffer -i em1 -p 3306。
四、通用兼容性与故障排查清单
- 权限与能力:抓包需要root或授予CAP_NET_RAW;Wireshark 安装时可选择允许非超级用户抓包,更安全可控。
- 驱动与内核:无线抓包依赖mac80211与合适驱动;若驱动过旧或不支持所需特性,优先升级内核/驱动或换用已知兼容的网卡型号。
- 工具链与依赖:编译型嗅探器(如mysql-sniffer)需匹配glib、libpcap、libnet等版本;缺依赖按报错逐一补齐。
- 接口与模式:确认接口名与工作模式(Managed/Monitor)正确;监听模式下无法上网属正常,抓完务必恢复。
- 干扰进程:抓包前用airmon-ng check kill关闭可能抢占网卡/改信道的进程(如NetworkManager、wpa_supplicant、avahi-daemon)。
- 版本匹配:选择与Ubuntu 版本/内核匹配的工具版本;必要时使用backports或官方仓库的最新稳定版。