Wireshark 捕获和显示过滤器

简介: Wireshark 捕获和显示过滤器

这篇文章介绍一下 Wireshark 的过滤器,Wireshark 过滤器分为 捕获过滤器显示过滤器,学习它们可以帮助你更好抓取到想要的报文。

1.捕获过滤器(BPF 过滤器)

捕获过滤器是在报文抓取之前的一种过滤,可以指定抓取满足过滤条件的报文内容:

  • 用于减少抓取的报文体积
  • 使用 BPF 语法,功能相对有限

1.1 捕获过滤器使用方法

Wireshark 面板点击 选项->捕获出现的窗口下方 capture filter for selected interfaces 栏目即可填写捕获过滤器的过滤条件:

1.2 捕获过滤器(BPF)语法介绍

Berkeley Packet Filter,在设备驱动级别提供抓包过滤接口,多数抓包工具都支持此语法(tcpdump),expression 表达式由多个原语组成:

1.2.1 primitives 原语过滤

primitives 原语由名称或数字,以及描述它的多个限定词组成,qualifiers 限定词:

  • Type:设置数字或者名称所指的类型,例如host www.baidu.com
  • (1)hostport
  • (2)net,设定子网,如 net 192.168.0.0 mask 255.255.255.0 等价于 net 192.168.0.0/24
  • (3)portrange,设置端口范围,例如 portrange 6000-8000
  • Dir:设置网络出入方向,例如 dst port 80
  • (1)srcdstsrcsrc or dstsrc and dstsrc 表示源,dst 表示目标)
  • (2)rataaddr1addr2addr3addr4、(仅对 IEEE 802.11 Wireless LAN有效)
  • Proto:指定协议类型,例如 udp
  • etherfdditrwlanipip6arprarpdecnettcpudpicmpigmpicmpigrppimahespvrrp
  • 其他
    1.2.2 原语运算符
    原语运算符如:src or dst portrange 6000-8000 && tcp or ip6
  • (1)geteway:指明网关 IP 地址,等价于 ether host $ehost and not host $host
  • (2)broadcast:广播报文,例如ether broadcast 或者 ip broadcast
  • (3)multicast:多播报文,例如 ip multicast 或者 ip6 multicast
  • (4)lessgreater小于或者大于。
  • 与:&& 或者 and
  • 或:|| 或者 or
  • 非:! 或者 not
    1.2.3 基于协议域过滤
  • 捕获所有 TCP 中的 RST 报文
  • TCP[13]&4==4
  • 抓取 HTTP GET 报文
  • port 80 and tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420,注意 47455420ASCII 码的 16 进制,表示 'GET'TCP 报文头可能不只 20 字节,data offset 提示了承载数据的偏移,但它以 4 字节为单位
1.2.4 捕获过滤抓取报文

以抓取 GET 请求为例,点击 捕获->选项,填入 port 80 and tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420 即可开始抓取 GET 相关的报文;

抓取到报文如下:

2.显示过滤器

显示过滤器是对已经抓取的报文进行二次过滤,显示过滤器语法仅能适用于 Wireshark 工具,它的特点如下:

  • 对已经抓取到的报文过滤显示
  • 功能强大

2.1 显示过滤器使用方法

Wireshark 报文抓取栏目上方可以在显示过滤器中填写过滤条件:

2.2 显示过滤器的过滤属性
  • 任何在报文细节面板中解析出的字段名,都可以作为过滤属性
  • 视图->内部->Supported Protocols里边,可以看到各字段名对应的属性名:

  • 右键报文细节中字段点击 作为过滤器应用->选中

    会自动填入显示过滤器中;

2.3 过滤值比较
英文 符号 含义说明
eq == 等于,如 ip.src == 10.0.0.4
ne != 不等于,如 ip.src != 10.0.14
gt > 大于,如frame.len > 10
lt < 小于,如frame.len < 128
ge >= 大于等于,如frame.len ge 0x100
le <= 小于等于,如frame.len <= 0x20
contains
包含,如sip.TO contains "a664"
matches ~ 正则匹配,如`host matches “acme.(org
bitwise_and & 位与操作,如 tcp.flags & 0x02
2.4 过滤值类型
类型 含义说明
Unsigned interger 无符号整型,如 ip.len le 1500
Signed integer 有符号整型,如 有符号整型
Boolean 布尔值,如 tcp.flags.syn(直接输入,无需比较)
Ethernet address -或者.分隔的 6 字节地址,如eth.dst==ff:ff:ff:ff:ff:ff
IPv4 address ip.addr == 192.168.0.1
IPv6 address ipv6.addr == ::1
Text string http.request.uri == "https://www.wireshark.org/"
2.5 多条件组合符
英文 符号 含义说明
and && 逻辑与,如 ip.src == 10.0.0.4 && tcp.flags.fin
or || 逻辑或,如 ip.src == 10.0.0.4 or ip.src == 192.168.10.1
xor ^^ 逻辑异或,如 tr.dst[0:3] == 0.6.29 xor tr.src[0:3] == 0.6.29
not ! 逻辑非,如 not llc
[n:m]
切片操作符,表示 n 是起始偏移量,m 是切片长度,如 eth.src[0:3] == 00:00:83
[n-m]
切片操作符,表示 n 是起始偏移量,m 是截止偏移量,如 eth.src[1-2] == 00:83
[:m]
切片操作符,表示从开始处至 m 截止偏移量,如 eth.src[:4] == 00:00:83:00
[m:]
切片操作符,表示 m 是起始偏移量,至字段结尾,如 eth.src[4:] == 20:20
[m]
切片操作符,表示取偏移量 m 处的字节,如 eth.src[2] == 83
[,]
切片操作符,表示使用逗号分割时,允许以上方式同时出现,如 eth.src[0:3,1-2,:4,4:,2] == 00:00:83:00:83:00:00:83:00:20:20:83
in
集合操作符,如 tcp.port in {443 4430..4434},其中 4430..4434 表示一段端口号

2.6 使用函数过滤

函数名 含义说明
upper 表示字符转化为大写
lower 表示字符转化为小写
len 表示字符的长度
count 表示字符出现的次数
string 把非字符类型转化为字符类型


相关文章
|
网络协议
自己总结的wireshark抓包技巧
自己总结的wireshark抓包技巧
650 0
|
Windows
windows开启路由转发
windows开启路由转发
2460 0
|
机器学习/深度学习 JSON 前端开发
RESTful API接口设计规范
近年来移动互联网的发展,前端设备层出不穷(手机、平板、桌面电脑、其他专用设备…),因此,必须有一种统一的机制,方便不同的前端设备与后端进行通信,于是RESTful诞生了,它可以通过一套统一的接口为 Web,iOS和Android提供服务。
4251 1
RESTful API接口设计规范
|
7月前
|
人工智能 安全 架构师
2025云栖大会 | 阿里云网络技术Session主题资料和视频回放归档
2025年9月24日-26日,杭州,一年一度的云栖大会如期而至;阿里云飞天洛神云网络作为阿里云计算的连接底座,是飞天云操作系统的核心组件,致力于为上云企业提供高可靠、高性能、高弹性、智能的连接服务。本次云栖,云网络产品线也带来全系列产品升级,以及创新技术重磅解读,围绕增强确定性、提效自动化、深耕智能化和敏捷全球化带来技术、产品和服务升级,以及全新的云网络产品生态合作计划发布。
845 4
|
存储 Java Linux
【Maven】——基础入门,插件安装、配置和简单使用,Maven如何设置国内源
Maven插件安装,Maven项目构建,依赖管理,Haven Help插件,Maven仓库,Maven如何设置国内源
|
Web App开发 网络协议 安全
网络编程懒人入门(十六):手把手教你使用网络编程抓包神器Wireshark
Wireshark是一款开源和跨平台的抓包工具。它通过调用操作系统底层的API,直接捕获网卡上的数据包,因此捕获的数据包详细、功能强大。但Wireshark本身稍显复杂,本文将以用抓包实例,手把手带你一步步用好Wireshark,并真正理解抓到的数据包的各项含义。
5571 2
|
网络协议 安全 网络安全
WireShark 中的数据包捕获和过滤器详解
【8月更文挑战第20天】
2274 0
|
运维 算法 Ubuntu
Copilot测评报告——2025如果你需要做运维,强烈推荐你使用Copilot
作为一名开发工程师,我曾参与阿里云Copilot的测评工作。2025年最新版Copilot支持Alinux、CentOS、Ubuntu、Anolis OS等操作系统,并新增了Agent模式,可直接执行命令并返回系统健康度等信息,大幅提升了运维效率。它还具备复杂任务理解能力,能处理定时任务和脚本编写,结合管道符号使用,极大便利了运维工作。强烈推荐给中高级运维工程师使用。
950 22
|
网络协议 PHP
Wireshark常用过滤器表达式汇总
【7月更文挑战第6天】Wireshark 抓包和显示过滤器用于精确定位网络流量。
|
Ubuntu Linux Windows
Linux系统盘制作(Rufus)
Linux系统盘制作(Rufus)
8041 0

热门文章

最新文章