温馨提示×

debian dumpcap过滤语法怎样

小樊
37
2026-09-15 21:16:31
栏目: 智能运维

在 Debian(以及所有 Linux 平台)上使用 dumpcap 时,它的过滤语法和 Wireshark / tcpdump 是一致的,都使用 BPF(Berkeley Packet Filter)语法。

下面按常见场景给你说明。


一、dumpcap 基本用法

sudo dumpcap -i eth0 -w capture.pcap

常用参数:

  • -i:网卡
  • -w:保存文件
  • -f:过滤表达式(重点)
  • -s:抓包长度(snaplen)
  • -c:抓包数量

二、dumpcap 过滤语法(BPF)

1️⃣ 按协议过滤

sudo dumpcap -i eth0 -f "tcp" -w tcp.pcap
sudo dumpcap -i eth0 -f "udp" -w udp.pcap
sudo dumpcap -i eth0 -f "icmp" -w icmp.pcap

2️⃣ 按 IP 地址过滤

# 源或目的 IP
sudo dumpcap -i eth0 -f "host 192.168.1.10" -w host.pcap

# 源 IP
sudo dumpcap -i eth0 -f "src host 192.168.1.10" -w src.pcap

# 目的 IP
sudo dumpcap -i eth0 -f "dst host 192.168.1.10" -w dst.pcap

3️⃣ 按端口过滤

# 端口(源或目的)
sudo dumpcap -i eth0 -f "port 80" -w http.pcap

# 源端口
sudo dumpcap -i eth0 -f "src port 443" -w src443.pcap

# 目的端口
sudo dumpcap -i eth0 -f "dst port 22" -w ssh.pcap

4️⃣ 组合条件(and / or / not)

sudo dumpcap -i eth0 -f "tcp and port 80" -w web.pcap

sudo dumpcap -i eth0 -f "host 192.168.1.10 and tcp" -w mix.pcap

sudo dumpcap -i eth0 -f "tcp port 80 or tcp port 443" -w web.pcap

sudo dumpcap -i eth0 -f "not arp" -w no_arp.pcap

5️⃣ 按网段过滤

sudo dumpcap -i eth0 -f "net 192.168.1.0/24" -w lan.pcap

6️⃣ 按 MAC 地址过滤

sudo dumpcap -i eth0 -f "ether host 00:11:22:33:44:55" -w mac.pcap

7️⃣ 高级示例

# 抓取 HTTP 请求(非 HTTPS)
sudo dumpcap -i eth0 -f "tcp port 80 and (((ip[2:2] - ((ip[0]&0x0f)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)" -w http.pcap

三、dumpcap 与 tcpdump 的区别

  • dumpcap:底层抓包工具(Wireshark 使用它)
  • tcpdump:带解析和显示功能

过滤语法 完全一样


四、常见坑点

✅ 必须用引号包住过滤条件
✅ 需要 root 权限
✅ Debian 安装:

sudo apt install wireshark-common

如果你有具体抓包需求(比如“只抓某个服务的包”),可以直接说,我可以帮你写精确过滤表达式。

0 踩