Debian 上“sniffer 启动失败”一般不是 Debian 本身的问题,而是具体工具、权限、驱动或配置导致的。为了准确判断,我需要你补充一点信息,但下面先给你一个常见原因速查清单(按出现频率排序)。
很多 sniffer(如 tcpdump、wireshark、sniffglue)必须 root 或 CAP_NET_RAW。
sudo tcpdump -i eth0
如果你直接运行:
tcpdump -i eth0
会看到类似:
tcpdump: eth0: You don't have permission to capture on that device
✅ 解决:
sudo setcap cap_net_raw,cap_net_admin=eip /usr/bin/tcpdump
或直接使用 sudo
Debian 现在默认使用 可预测网卡名:
ip a
常见错误:
sniffer -i eth0 # 实际是 enp3s0
✅ 解决:
ip a 确认接口名any 测试:sudo tcpdump -i any
某些 sniffer 需要混杂模式:
ip link set eth0 promisc on
或无线网卡需要 monitor 模式(aircrack-ng 等):
iw dev wlan0 set type monitor
Debian 下很多 Wi-Fi 网卡:
NetworkManager 占用✅ 排查:
iw list | grep -A 10 "Supported interface modes"
如果没有 monitor → 硬件/驱动问题
常见于自己编译的 sniffer:
ldd /usr/bin/xxx
或查看错误:
sniffer 2>&1 | head
✅ 解决:
sudo apt install libpcap-dev libnl-3-dev
不同工具失败原因不同:
| 工具 | 常见失败原因 |
|---|---|
| tcpdump | 权限、接口名 |
| wireshark | 非 root、dumpcap 权限 |
| aircrack-ng | monitor 模式、驱动 |
| sniffglue | 权限、seccomp |
| nmap --sniffer | libpcap |
| 自写程序 | PF_PACKET / raw socket |
ip a
sudo tcpdump -i any -c 5
dmesg | tail
请回复我以下信息(越全越好):
cat /etc/debian_version
ip a
我可以直接给你精确到命令级别的解决方案。