在 Debian 上用 dumpcap 过滤数据包,主要有 三种方式:捕获过滤(Capture filter)、显示过滤(Display filter)、以及 dumpcap 自身参数过滤。下面按常见用法说明。
✅ 在抓包前就生效,基于 BPF(tcpdump 语法)
sudo dumpcap -i eth0 -f "host 192.168.1.10"
| 需求 | 过滤表达式 |
|---|---|
| 指定 IP | host 192.168.1.10 |
| 指定源 IP | src host 192.168.1.10 |
| 指定目的 IP | dst host 192.168.1.10 |
| 指定端口 | port 80 |
| 指定协议 | tcp / udp / icmp |
| 多条件 | tcp and port 443 |
| 排除某个 IP | not host 192.168.1.1 |
| HTTP | tcp port 80 |
| DNS | udp port 53 |
✅ 示例:
sudo dumpcap -i eth0 -f "tcp port 443"
sudo dumpcap -i eth0 -w capture.pcap -f "tcp port 80"
常用参数:
-i:网卡-w:保存文件-f:捕获过滤-c:抓多少个包后停止-s:抓包长度(0 = 完整)sudo dumpcap -i any -s 0 -c 100 -w test.pcap
⚠️ dumpcap 本身不支持显示过滤 显示过滤是 Wireshark / tshark 才支持的
sudo tshark -r capture.pcap -Y "http.request"
常见显示过滤:
ip.addr == 192.168.1.1tcp.port == 443httpdnsicmpsudo dumpcap
sudo usermod -aG wireshark $USER
newgrp wireshark
dumpcap -D
sudo dumpcap -i eth0 -f "host 192.168.1.100 and tcp port 80" -w http.pcap
sudo dumpcap -i any -f "udp port 53" -w dns.pcap
| 过滤类型 | 工具 | 语法 |
|---|---|---|
| 捕获过滤 | dumpcap | BPF(tcpdump 语法) |
| 显示过滤 | tshark / Wireshark | Wireshark 语法 |
| 保存文件 | dumpcap | -w |
如果你愿意,可以告诉我:
我可以帮你写一条 精准的 dumpcap 命令。