温馨提示×

debian里dumpcap怎么过滤

小樊
36
2026-09-30 20:42:50
栏目: 智能运维

在 Debian 里,dumpcap 是 Wireshark 抓包工具集中的底层抓包程序。它本身只负责抓包和写文件,过滤主要分两类:捕获过滤(capture filter) 和 显示/读取过滤(read filter)。


一、捕获过滤(抓包时就过滤)

使用 -f 参数,语法和 tcpdump 一样(BPF 语法)。

常见例子

# 只抓 192.168.1.10 的流量
dumpcap -i eth0 -f "host 192.168.1.10" -w out.pcap

# 只抓 TCP 80 端口
dumpcap -i eth0 -f "tcp port 80" -w out.pcap

# 不抓广播和组播
dumpcap -i eth0 -f "not broadcast and not multicast" -w out.pcap

# 抓某个网段
dumpcap -i eth0 -f "net 10.0.0.0/24" -w out.pcap

⚠️ 捕获过滤在抓包前就生效,抓不到的包不会写入文件。


二、读取过滤(对已抓的包过滤)

使用 -R 参数,语法是 Wireshark 显示过滤语法。

例子

# 从已有文件中读取 http 包
dumpcap -r in.pcap -R "http" -w http.pcap

# 读取某个 IP 的 TCP 包
dumpcap -r in.pcap -R "ip.addr == 192.168.1.10 && tcp" -w filtered.pcap

⚠️ -R 必须配合 -r 使用(读文件时过滤)。


三、只看接口列表

dumpcap -D

四、常见注意点

  1. 权限问题(Debian)

    sudo dumpcap ...
    

    或把用户加入 wireshark 组:

    sudo usermod -aG wireshark $USER
    
  2. -f 是抓包过滤,-R 是读文件过滤,不要混用。

  3. 如果只是临时抓包,也可以直接用:

    tcpdump -i eth0 -w out.pcap
    

如果你有具体场景(比如“只抓某 IP 的 DNS”或“排除某个端口”),可以告诉我,我给你写 exact 命令。

0 踩