温馨提示×

debian dumpcap怎样过滤

小樊
45
2026-09-06 19:57:07
栏目: 智能运维

在 Debian 下使用 dumpcap(Wireshark 的抓包后端工具)时,“过滤”主要有两种情况:

  1. 抓包时过滤(Capture Filter) —— 只抓取符合条件的数据包
  2. 抓包后过滤(Display Filter) —— dumpcap 不直接支持,需要用 tshark / wireshark

下面重点讲 dumpcap 的抓包过滤。


一、dumpcap 抓包过滤(Capture Filter)

dumpcap 使用 BPF(Berkeley Packet Filter)语法(和 tcpdump 一样)。

基本命令格式

sudo dumpcap -i eth0 -f "过滤表达式" -w output.pcap

二、常用过滤示例

1️⃣ 按主机过滤

# 只抓和 192.168.1.10 通信的包
sudo dumpcap -i eth0 -f "host 192.168.1.10" -w test.pcap
# 排除某个主机
sudo dumpcap -i eth0 -f "not host 192.168.1.10" -w test.pcap

2️⃣ 按网段过滤

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

3️⃣ 按端口过滤

# 只抓 80 端口
sudo dumpcap -i eth0 -f "tcp port 80" -w test.pcap
# 抓 80 或 443
sudo dumpcap -i eth0 -f "tcp port 80 or tcp port 443" -w test.pcap
# 非 22 端口
sudo dumpcap -i eth0 -f "not port 22" -w test.pcap

4️⃣ 按协议过滤

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

5️⃣ 组合条件

# 主机 192.168.1.10 且 tcp 端口 443
sudo dumpcap -i eth0 -f "host 192.168.1.10 and tcp port 443" -w test.pcap
# 来自 10.0.0.0/8 且不是 ssh
sudo dumpcap -i eth0 -f "src net 10.0.0.0/8 and not port 22" -w test.pcap

三、常用参数说明

-i      指定网卡(如 eth0、ens33)
-f      抓包过滤表达式
-w      保存文件
-c      抓多少个包后停止
-s      抓包长度(0 表示完整)

示例:

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

四、查看网卡名

dumpcap -D

或

ip addr

五、dumpcap 不能做的事 ❌

  • ❌ 不支持 Wireshark 的 显示过滤语法(如 http.request.method == "GET")
  • ✅ 显示过滤要用:
    tshark -r test.pcap -Y "http.request"
    

如果你有 具体场景(比如只抓某个 IP 的 DNS、只抓 HTTPS、排除广播包),可以直接告诉我,我帮你写精确过滤规则。

0 踩