Wireshark 过滤器笔记

本文最后更新于 2026年5月3日 下午

Wireshark 过滤器笔记

1. 核心概念:捕获过滤器 vs 显示过滤器

过滤器类型 作用时机 语法体系 核心用途 关键注意事项
捕获过滤器 抓包开始前预先设置 BPF 伯克利包过滤语法 直接丢弃无关流量,缩减抓包文件体积、节省系统内存与磁盘开销 语法与显示过滤器完全不互通,不可直接照搬复用
显示过滤器 抓包过程中或抓包结束后使用 Wireshark 专属增强语法 仅在界面隐藏无关报文,原始流量完整保留,适用于精细化二次筛选与协议分析 支持字段匹配、正则匹配、多条件逻辑组合,功能远强于捕获过滤器

经典语法对照(通用必记)

  • 显示过滤器:tcp.port == 80
  • 捕获过滤器:tcp port 80

2. 显示过滤器(协议分析最常用)

2.1 语法基础

1
协议.字段 比较运算符 值 [逻辑运算符 拼接其他条件]
  • 输入框颜色校验规则:
    • 绿色:语法格式完全正确
    • 红色:存在语法错误,无法生效
    • 黄色:语法合法但逻辑存在歧义,可能不符合预期匹配效果

2.2 比较运算符

符号写法 英文关键字 含义说明
== eq 等于
!= ne 不等于
> gt 大于
< lt 小于
>= ge 大于等于
<= le 小于等于
contains 字段或载荷包含指定字符串,多用于HTTP域名、报文内容筛选
matches 支持正则表达式模糊匹配
in 匹配指定集合内的多个值

2.3 逻辑运算符

  • && / and:逻辑与
  • || / or:逻辑或
  • ! / not:逻辑非
  • 运算优先级:not > and > or
  • 规范建议:复杂组合表达式需用英文小括号 () 划分逻辑层级,避免优先级歧义

2.4 常用过滤示例(整合TCP/HTTP/ICMP协议知识点)

按 IP 地址筛选

1
2
3
4
ip.src == 192.168.1.53
ip.dst == 220.181.38.148
ip.addr == 192.168.1.100
!(ip.addr == 10.0.0.0/24)

按基础协议筛选

1
2
3
4
5
tcp
udp
http
icmp
arp

按端口筛选

1
2
3
4
5
tcp.port == 80
tcp.port == 443
tcp.dstport == 443
tcp.port in {80 443 8080}
udp.port == 53

按 HTTP 业务特征筛选

适配curl请求、网页交互等应用层场景:

1
2
3
4
http.request.method == "GET"
http.request.method == "HEAD"
http.response.code == 200
http.host contains "baidu.com"

按 TCP 标志位筛选(整合三次握手、四次挥手、PSH、ACK核心知识点)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 筛选纯SYN报文(三次握手第一次)
tcp.flags.syn == 1 && tcp.flags.ack == 0

# 筛选SYN+ACK报文(三次握手第二次)
tcp.flags.syn == 1 && tcp.flags.ack == 1

# 筛选FIN关闭报文(四次挥手流程报文)
tcp.flags.fin == 1

# 筛选PSH=1报文(完整业务数据、强制内核推送至应用层)
tcp.flags.push == 1

# 筛选纯空ACK报文(无业务数据,延迟确认单独ACK包)
tcp.flags.ack == 1 && tcp.len == 0

# 筛选RST重置报文(连接断开后资源清理报文)
tcp.flags.reset == 1

# 筛选TCP重传异常报文
tcp.analysis.retransmission

补充说明:

  1. tcp.len == 0 标识无应用层载荷,仅为TCP内核确认报文;
  2. tcp.flags.push == 1 对应协议栈PSH标志位,用于标记完整逻辑业务数据。

按MAC地址、包长度、DNS筛选

1
2
3
4
eth.addr == 00:0c:29:c6:27:59
eth.src == 00:0c:29:c6:27:59
frame.len > 1000
dns.qry.name contains "baidu"

3. 捕获过滤器(BPF语法,抓包前流量限流)

3.1 语法结构

1
协议 方向 主机/网络 端口 逻辑运算
  • 方向关键字:src 源地址、dst 目的地址、src or dst 默认可省略,匹配双向流量
  • 匹配类型:host 单主机IP、net 网段、port 单一端口、portrange 端口区间

3.2 常用捕获过滤器示例

过滤目的 BPF 表达式
抓取单主机全部流量 host 192.168.1.100
抓取指定网段流量 net 192.168.1.0 mask 255.255.255.0
仅抓取HTTP 80端口流量 tcp port 80
限定源主机访问目标443端口 src host 192.168.1.53 and dst port 443
过滤排除ARP冗余报文 not arp
抓取网段内TCP/UDP 1-1024端口流量 (tcp or udp) and net 192.168.1.0/24 and portrange 1-1024

易错规范:捕获过滤器不支持 ==contains、正则匹配等语法,仅适用于简单流量粗筛,精细化协议分析需使用显示过滤器。


4. 实用操作技巧

  1. 右键快速生成过滤器
    选中报文任意协议字段,右键选择「作为过滤器应用」「准备为过滤器」,可自动生成标准过滤表达式,无需手动编写。
  2. 图形化表达式构建工具
    通过菜单栏「分析 → 显示过滤器表达式」,可视化浏览所有协议层级与字段,可视化组合生成过滤规则。
  3. 输入自动补全功能
    过滤器输入框支持协议名、字段名自动补全,降低记忆成本。
  4. 常用过滤器保存管理
    在「分析 → 显示过滤器」中,可自定义保存TCP握手、四次挥手、PSH报文、HTTP、ICMP等常用规则,便于后续快速调用。
  5. 协议分析适配用法
    可通过标志位过滤器单独筛选三次握手、四次挥手报文;利用 tcp.len 区分空ACK与带数据PSH报文;通过ICMP过滤器分析ping报文TTL,辅助初步判别远端操作系统类型。

5. 常用协议速查表(网络分层整理)

链路层

arp stp eth

网络层

ip ipv6 icmp icmpv6 igmp

传输层

tcp(涵盖握手、挥手、PSH、ACK、重传异常分析)
udp(适用于DNS、DHCP等无连接业务)

应用层

  • 网页加密类:http http2 tls/ssl dns
  • 运维基础类:dhcp ntp snmp lldp
  • 文件共享类:ftp smb/smb2
  • 其他业务类:ssdp rtp modbus


Wireshark 过滤器笔记
https://xinhaojin.github.io/2026/05/03/Wireshark 过滤器笔记/
作者
xinhaojin
发布于
2026年5月3日
许可协议