在 Debian 系统上,dumpcap 是 Wireshark 套件里用于抓包的核心命令行工具(Wireshark 的 GUI 实际上也是调用 dumpcap)。它通常用来高速、低开销地抓取网络数据包,并保存为 .pcap / .pcapng 文件。
下面从 安装 → 权限 → 基本用法 → 常见示例 → 参数说明 逐步说明。
sudo apt update
sudo apt install wireshark-common
⚠️ 安装时可能会问:
Should non-superusers be able to capture packets? 选 Yes(允许普通用户抓包)
如果你已经装过 wireshark:
sudo apt install dumpcap
which dumpcap
# 通常在 /usr/bin/dumpcap 或 /usr/sbin/dumpcap
sudo dumpcap
sudo usermod -aG wireshark $USER
然后 注销并重新登录。
检查:
groups
dumpcap -D
或
dumpcap --list-interfaces
示例输出:
1. eth0
2. lo
3. wlan0
sudo dumpcap -i eth0 -w capture.pcapng
-i eth0:指定网卡-w:写入文件sudo dumpcap -i eth0 -c 100 -w test.pcap
抓 100 个包后自动停止。
sudo dumpcap -i eth0 -a duration:60 -w test.pcap
抓 60 秒。
sudo dumpcap -i eth0 \
-w /var/log/cap_%Y%m%d_%H%M%S.pcapng \
-b filesize:100000 \
-b files:10
含义:
⚠️ dumpcap 本身不支持 BPF 过滤语法之外的复杂过滤,但通常可以:
sudo dumpcap -i eth0 -f "tcp port 80" -w http.pcap
BPF 过滤器示例:
host 192.168.1.1net 10.0.0.0/8tcp port 443udp and port 53| 工具 | 用途 |
|---|---|
| dumpcap | 高性能抓包(Wireshark 底层) |
| tcpdump | 轻量命令行抓包 |
| tshark | Wireshark 命令行分析 |
常见组合:
dumpcap -i eth0 -w cap.pcapng
tshark -r cap.pcapng
如果是前台运行:
Ctrl + C
Couldn't run /usr/bin/dumpcap in child process
✅ 解决:
sudo usermod -aG wireshark $USER
或:
sudo dumpcap ...
dumpcap -D
为空 → 检查是否容器环境(Docker 需 --network host 或 CAP_NET_RAW)
sudo dumpcap -i eth0 -a duration:300 -w server.pcapng
sudo dumpcap -i any -f "udp port 53" -w dns.pcap
sudo dumpcap -i eth0 -i eth1 -w multi.pcapng
如果你愿意,可以告诉我:
我可以直接给你一条可复制的命令。