当前位置: 首页 > news >正文

Wireshark过滤器语法详细指南及相关知识点

Wireshark主要有两种过滤器

1、捕获过滤器:在抓包开始前设置,用于决定哪些数据包被捕获进来。不符合条件的数据包会被直接丢弃。

2、显示过滤器:在抓包完成后使用,用于在已捕获的数据包中查找和显示特定的数据包。它不会删除数据包,只是隐藏不匹配的。

这两种过滤器的语法不同,不能混用

一、捕获过滤器

捕获过滤器使用Berkeley Packet Filter(BPF)语法。这种语法也被广泛应用于tcpdump 等工具。

1、基本结构

[协议] [方向] [主机] [值] [逻辑运算]

协议:如 ether、ip、ip6、arp、tcp、udp(如果省略,默认匹配所有协议)

方向:如 src、dst、src or dst、src and dst (如果省略,默认为 src or dst)

主机:如 host、net、port

:如 192.168.1.1 、80 、www.example.com

逻辑运算:如 and(&&)、or(||)、not(!)

2、常用示例

只捕获来自或发往某IP的流量 (192.168.1.1)

host 192.168.1.1

只捕获固定目标端口(如 80 )的TCP流量(HTTP)

tcp dst port 80

排除ARP和DNS流量

not arp and not port 53

捕获特定网段的所有流量

net 192.168.0.0/24

捕获主机之间的流量(如 10.0.0.1 和 10.0.0.2)

host 10.0.0.1 and host 10.0.0.2

二、显示过滤器

显示过滤器的语法更强大、更灵活,使用类似编程语言的表达式。

1、比较运算符

运算符英文描述中文描述示例
==eq等于  ip.src == 192.168.1.1
!=

ne

不等于  tcp.port != 80
>gt大于  frame.len > 100
<lt小于  http.content_len < 500
>=ge大于等于  tcp.window_size >= 8192
<=le小于等于 frame.time_relative <= 10.0

2、逻辑运算符

运算符英文描述中文描述示例
and&&ip.src==192.168.1.1 and tcp.flags.syn==1
or`` 或 http or dns
not!not arp
[...]in包含于tcp.port in {80 443 8080}

3、常用协议字段

Wireshark 支持海量的协议字段,可以通过在过滤器输入框输入部分字段名获得自动提示

IP

ip.addr : IP地址(源或目标)

ip.src : 源IP地址

ip.dst : 目标IP地址

ip.ttl : TTL值

TCP

tcp.port : 端口(源或目标)

tcp.srcport : 源端口

tcp.dstport : 目标端口

tcp.flags.syn : SYN标志位(值为1或0)

tcp.flags.ack : ACK标志位

tcp.window_size : 窗口大小

tcp.analysis.retransmission : 重传的数据包

UDP

udp.port : UDP端口

HTTP

http.request : HTTP请求

http.response : HTTP响应

http.host : Host头

http.request.uri : 请求的URI

http.response.code : 状态码(如 404)

DNS

dns.qry.name : 查询的域名

dns.flags.response : 是响应包(1)还是查询包(0)

通用

frame.time_relative : 相对于第一个数据包的时间

frame.len : 帧长度

4、存在性检查

http :显示所有HTTP流量(只要包包含HTTP协议)

http.option.mss : 显示包含TCP MSS选项的包

5、常用显示过滤器实例

显示所有TCP SYN包(用于查看连接建立)

tcp.flags.syn == 1 and tcp.flags.ack == 0

显示包含特定字符串的流量(如密码)

frame contains "password"

(注意:contains 操作对性能影响较大,谨慎在大文件中使用 

显示HTTP的GET请求

http.request.method == "GET"

显示所有发生重传的TCP包

tcp.analysis.retransmission

显示源或目标端口为80或443的流量(HTTP/HTTPS)

tcp.port in {80 443}
// 或者
tcp.port == 80 or tcp.port == 443

显示来自特定MAC地址的流量

eth.src == aa:bb:cc:dd:ee:ff

显示所有DNS查询(非响应)

dns.flags.response == 0

http://www.dtcms.com/a/473576.html

相关文章:

  • 把工艺内容做成向量数据库供llm调用
  • MIT 6.S081课程笔记0——关于课程
  • 前端梳理体系从常问问题去完善-网络篇
  • 常平网站wordpress精简优化
  • TensorFlow2 Python深度学习 - TensorFlow2框架入门 - 使用Keras实现逻辑回归
  • 网站公司制作公司网站如何宣传推广
  • Tensorflow循环神经网络RNN
  • python如何控制鼠标移动到某坐标位置
  • 单片机中经常定义的结构体解读
  • 基于Jetson+GMSL AI相机的工业高动态视觉感知方案
  • 海口房地产网站建设新公司注册取名
  • WebSocket —— 在线聊天室
  • 我的高清手机大屏
  • MySQL(三) - 表中数据增删改操作
  • [嵌入式系统-101]:AIoT(人工智能物联网)开发板
  • 成都装修网站制作免费一键网站
  • 2025版spring security认证授权详解篇【经典】
  • 第五十五章 ESP32S3 基于MQTT协议连接OneNet物联网开放平台
  • MySQL可重复读的级别下,幻读本质问题
  • MaixCam二维云台检测人脸项目
  • 无线收发系统结构
  • 做网站的工作是什么开发公司官网
  • Node.js 与 MongoDB:高效的数据管理解决方案
  • 网络层:从 IP 协议到路由转发
  • 做网站办什么营业执照nginx wordpress 伪静态
  • 深入理解TCP/IP通信:系统调用与零拷贝技术全面解析
  • 编程语言Delphi
  • 【AI论文】RLP:将强化学习作为预训练目标
  • Etcd使用
  • etcd实战课-实战篇(上)