在 Debian 上调试 dumpcap(Wireshark 的命令行抓包工具),通常分为 权限问题、抓包异常、性能问题、源码/运行调试 等几类。下面按常见场景给你一套实用指南。
sudo apt update
sudo apt install wireshark-common
查看版本:
dumpcap -v
如未安装:
sudo apt install dumpcap
dumpcap 需要 raw socket / netlink 权限。
sudo usermod -aG wireshark $USER
newgrp wireshark
然后测试:
dumpcap -i eth0
sudo setcap cap_net_raw,cap_net_admin=eip /usr/bin/dumpcap
验证:
getcap /usr/bin/dumpcap
dumpcap -D
如果接口不显示:
ip link
sudo modprobe af_packet
dumpcap -i eth0 -f "tcp port 80" -w test.pcap -V
常用参数:
-V:显示详细信息-f:BPF 过滤-w:写文件-P:非混杂模式tcpdump -r test.pcap
sudo apt install strace
strace dumpcap -i eth0
常见错误点:
EPERM → 权限问题ENOENT → 接口不存在ENETDOWN → 接口未启用sudo apt install wireshark-dbgsym
或:
sudo apt install gdb
gdb dumpcap
常用命令:
run -i eth0
bt
info threads
dumpcap -i eth0 -w test.pcap
抓完后:
capinfos test.pcap
dumpcap -i eth0 -B 64 -w test.pcap
单位:MB
| 错误 | 原因 | 解决 |
|---|---|---|
Permission denied |
无抓包权限 | setcap / wireshark 组 |
No interfaces found |
无权限或接口未 up | ip link set up |
Can't open netlink |
内核配置问题 | modprobe af_packet |
| 抓到空文件 | 非混杂模式 / 过滤错误 | 去掉 -f 测试 |
| 大量丢包 | buffer 小 | -B 参数 |
sudo systemctl restart networking
# 1. 确认权限
sudo setcap cap_net_raw,cap_net_admin=eip /usr/bin/dumpcap
# 2. 查看接口
dumpcap -D
# 3. 抓包并调试
strace dumpcap -i eth0 -V
# 4. 分析 pcap
tcpdump -r test.pcap
如果你能贴出 具体报错信息 / Debian 版本 / 使用场景(物理机 / 虚拟机 / 容器),我可以给你更精确的调试方案。