温馨提示×

debian dumpcap怎么过滤流量

小樊
45
2026-09-12 15:16:43
栏目: 智能运维

在 Debian 上,dumpcap 是 Wireshark 套件里的抓包工具(命令行),它本身支持的过滤主要是“抓包过滤(capture filter / BPF 过滤)”,语法和 tcpdump 一样。

下面按常见场景说明。


一、先安装(如果还没装)

sudo apt update
sudo apt install wireshark-common

通常会带 dumpcap。


二、dumpcap 的过滤方式

1️⃣ 抓包过滤(Capture Filter,推荐)

使用 BPF 语法,在抓包前就过滤,性能好。

sudo dumpcap -i eth0 -f "host 192.168.1.10"

常见示例:

按 IP

host 192.168.1.10
src host 192.168.1.10
dst host 192.168.1.10

按端口

port 80
tcp port 443
udp port 53

按协议

icmp
arp
tcp
udp

组合条件

host 192.168.1.10 and port 443
host 10.0.0.1 and (tcp port 80 or tcp port 443)
not arp

2️⃣ 抓包并保存文件(最常用)

sudo dumpcap -i eth0 -f "tcp port 443" -w https.pcap

常用参数:

  • -i 网卡
  • -f 过滤规则
  • -w 输出文件
  • -c 抓多少个包停止
  • -s 抓包长度(0 表示完整)

示例:

sudo dumpcap -i any -f "host 8.8.8.8" -w dns.pcap -c 100

3️⃣ 查看网卡名

dumpcap -D

或

ip link

三、dumpcap 不支持显示过滤(Display Filter)

⚠️ 注意:

  • dumpcap 不能用 Wireshark 的 http.request 这种显示过滤
  • 显示过滤是 tshark 或 Wireshark 的功能

如果你需要抓完再过滤,用 tshark:

tshark -r file.pcap -Y "http.request"

四、权限问题(常见坑)

Debian 默认需要 root:

sudo dumpcap ...

或把用户加入 wireshark 组:

sudo usermod -aG wireshark $USER

然后重新登录。


五、实用示例汇总

# 抓某 IP 的所有流量
sudo dumpcap -i eth0 -f "host 192.168.1.100" -w a.pcap

# 只抓 DNS
sudo dumpcap -i any -f "udp port 53" -w dns.pcap

# 排除 ARP
sudo dumpcap -i eth0 -f "not arp" -w no_arp.pcap

如果你有具体场景(比如:只抓某个服务、排除广播、抓 HTTPS 握手),可以告诉我,我可以直接给你精确过滤语句。

0 踩