温馨提示×

dumpcap在debian怎样过滤

小樊
36
2026-09-21 22:51:08
栏目: 智能运维

在 Debian 下使用 dumpcap(Wireshark 的抓包后端)时,过滤通常分两种:

  1. 抓包前过滤(Capture Filter / BPF)
  2. 抓包后过滤(Display Filter,一般配合 tshark/wireshark)

dumpcap 本身只支持抓包前过滤(BPF),不支持 Wireshark 的显示过滤语法。


一、dumpcap 基本用法(Debian)

先确认已安装:

sudo apt update
sudo apt install dumpcap

查看网卡:

dumpcap -D

二、dumpcap 使用抓包过滤(BPF)

1️⃣ 语法位置

dumpcap -i <网卡> -f "<BPF过滤表达式>" -w <文件.pcap>

-f 后面就是 BPF 过滤规则(和 tcpdump 一样)。


2️⃣ 常用 BPF 过滤示例

只抓某个 IP

sudo dumpcap -i eth0 -f "host 192.168.1.10" -w test.pcap

只抓 TCP

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

只抓某端口(如 80)

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

排除某个 IP

sudo dumpcap -i eth0 -f "not host 192.168.1.1" -w no_gw.pcap

抓某个网段

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

抓 ARP

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

抓 DNS

sudo dumpcap -i eth0 -f "udp port 53" -w dns.pcap

三、dumpcap 不支持的过滤(重点)

❌ 以下不能在 dumpcap 中用:

http.request
tcp.flags.syn == 1
ip.addr == 192.168.1.1

这些是 Wireshark / tshark 的显示过滤器,不是 BPF。


四、如果你想要“显示过滤”

方案 1:dumpcap 抓包 + tshark 过滤

sudo dumpcap -i eth0 -w raw.pcap
tshark -r raw.pcap -Y "http.request"

方案 2:直接用 tshark(更简单)

sudo tshark -i eth0 -Y "tcp.flags.syn == 1"

五、权限问题(Debian 常见)

如果报权限错误:

sudo dumpcap -i eth0

或加入 wireshark 组:

sudo usermod -aG wireshark $USER
# 重新登录

六、总结一句话

dumpcap 只能用 BPF 抓包过滤(tcpdump 语法),不能用 Wireshark 显示过滤。

如果你愿意,可以告诉我:

  • 网卡名
  • 想抓什么流量(HTTP / DNS / 某个 IP)

我可以直接帮你写一条可用的 dumpcap 命令。

0 踩