在 Debian 下,dumpcap 是 Wireshark 套件中用于捕获数据包的命令行工具。它支持使用过滤表达式,但和 tcpdump 一样,主要支持 捕获过滤器(Capture Filter,BPF 语法),而不是 Wireshark 的显示过滤器。
下面从安装、基本用法、过滤语法、示例和注意事项几个方面说明。
sudo apt update
sudo apt install wireshark-common
安装后通常会有:
which dumpcap
# /usr/bin/dumpcap
普通用户抓包可能需要权限:
sudo dumpcap ...
# 或
sudo usermod -aG wireshark $USER
dumpcap -i <接口> -f "<捕获过滤器>"
常用参数:
-i:指定网卡(如 eth0、ens33)-f:捕获过滤器(BPF 语法)-w:保存到文件-c:抓包数量-s:快照长度(snaplen)dumpcap 使用的是 libpcap 过滤器语法,和 tcpdump 完全一致。
dumpcap -i eth0 -f "tcp"
dumpcap -i eth0 -f "udp"
dumpcap -i eth0 -f "icmp"
dumpcap -i eth0 -f "arp"
dumpcap -i eth0 -f "host 192.168.1.10"
dumpcap -i eth0 -f "host 192.168.1.10 and host 192.168.1.20"
源或目的:
dumpcap -i eth0 -f "src host 192.168.1.10"
dumpcap -i eth0 -f "dst host 192.168.1.10"
dumpcap -i eth0 -f "tcp port 80"
dumpcap -i eth0 -f "udp port 53"
dumpcap -i eth0 -f "tcp src port 443"
端口范围:
dumpcap -i eth0 -f "tcp portrange 8000-9000"
dumpcap -i eth0 -f "tcp and port 80"
dumpcap -i eth0 -f "host 10.0.0.1 and not port 22"
dumpcap -i eth0 -f "icmp or arp"
dumpcap -i eth0 -f "net 192.168.0.0/24"
dumpcap -i eth0 -f "ether host 00:11:22:33:44:55"
dumpcap -i eth0 -f "ether src 00:11:22:33:44:55"
sudo dumpcap -i eth0 -f "tcp port 80" -w http.pcap
限制抓包数量:
sudo dumpcap -i eth0 -f "udp port 53" -c 100 -w dns.pcap
dumpcap -D
或:
ip link
❌ dumpcap 不支持 Wireshark 显示过滤器
错误示例:
dumpcap -f "http.request" # ❌ 不支持
✅ 正确方式:
dumpcap + BPF 捕获tshark 或 Wireshark 做显示过滤例如:
tshark -r http.pcap -Y "http.request"
| 工具 | 过滤器类型 | 用途 |
|---|---|---|
| dumpcap | BPF | 抓包(Wireshark 后端) |
| tcpdump | BPF | 抓包 |
| tshark | BPF + 显示过滤 | 抓包 + 分析 |
如果你有具体场景(比如只抓某个服务的包、只抓异常流量、容器/桥接网卡等),可以告诉我,我可以给你更精确的过滤规则。