wireshark使用及过滤器介绍

wireshark使用

wireshark工作原理

wireshark是一个网络封包分析软件,处于混杂模式(Promiscuous)的Wireshark可以抓取改冲突域的所有网络封包。它的基本原理是通过程序将网卡的工作模式设置为“混杂模式”,这时网卡将接受所有流经它的数据帧,这实际上就是Sniffer工作的基本原理:让网卡接收一切他所能接收的数据。Sniffer就是一种能将本地网卡状态设成混杂状态的软件,当网卡处于这种”混杂”方式时,该网卡具备”广播地址”,它对所有遇到的每一个数据帧都 产生一个硬件中断以便提醒操作系统处理流经该物理媒体上的每一个报文包。

Wireshark界面说明

在这里插入图片描述

Wireshark界面主要分为三部分

第一部分

在这里插入图片描述

第一部分展示的是wireshark抓取的所有数据包的列表。

注意:最后一列Info是wireshark组织的说明并不一定是数据包中的原始内容

我们可以看到有很多的色彩显示这是wireshark为了区分不同的报文做的颜色提示,可以通过点击上方视图->试图规则,查看并修改。

在这里插入图片描述

其中重要的规则有以下几条

黑色代表报文错误

红色代表各类异常

其他颜色都为正常

第二部分

在这里插入图片描述

第二部分是针对第一部分窗口中选中的数据包的分协议展示

注意:如果出现红色是因为wireshark开启校验和验证而该层协议验证和校验不正确导致

  1. Frame:物理层的数据帧概况
  2. Ethernet Ⅱ:数据链路层以太网帧头部信息
  3. Internet Protocol Version 4: 互联网层IP包头部信息
  4. Transmission Control Protocol: 传输层T的数据段头部信息,此处是TCP
  5. Hypertext Transfer Protocol: 应用层的信息,此处是HTTP协议

第三部分

第三部分是对第一部分选中的数据包的元数据,其中左侧是十六进制表示右侧是ASCll码表示,当第二部分中选中某层或某字段,第三部分中的对应位置也会被高亮提示。
在这里插入图片描述

wireshark过滤器使用

因为信息量大,有很多的冗余报文。为了方便的从中获取需要的报文,我们必须熟练使用wireshark提供的过滤器,捕获过滤器和显示过滤器。

捕获过滤器

捕捉过滤器是数据经过的第一层过滤器,它用于控制捕捉数据的数量,以避免产生过大的日志文件。

显示过滤器

显示过滤器是一种更为强大(复杂)的过滤器。它允许您在日志文件中迅速准确地找到所需要的记录。

两种过滤器使用时都需要遵守一定的语法,不过在使用的过程中,wireshark提供一些简单常用的过滤命令基本可以满足需求。

过滤规则
符号含义
eq, ==等于
ne,!=不等于
gt,>大于
lt,<小于
ge,>=大于等于
le,<=小于等于
and,&&
or,||
not,!取反
举例

过滤源IP、目的IP

ip.dst==192.168.101.8
ip.src==1.1.1.1

端口过滤

tcp.dstport==80
tcp.srcport==80

http模式过滤

http.request.method=="GET"
http.request.method=="POST"

wireshark使用

当你筛选过后数据包的数量会少很多,我们可以通过右键-》追踪流-》选择相应协议进行追踪,因为我使用的是tcp协议所以我这边只有tcp流可以点击。

点击后弹出窗口即可看到

在这里插入图片描述

主要分为两种颜色红色与蓝色

红色:源地址到目的地址

蓝色:目的地址到源地址

FLAGS字段含义

在TCP层,有个FLAGS字段,这个字段有以下几个标识:SYN, FIN, ACK, PSH, RST, URG.
它们的含义是:
SYN表示建立连接,
FIN表示关闭连接,
ACK表示响应,
PSH表示有 DATA数据传输,
RST表示连接重置。

TCP的SEQ和ACK总结:

在TCP通讯中,无论是建立连接,数据传输,友好断开,强制断开,都离不开Seq值和Ack值,它们是TCP传输的可靠保证。Seq是发送方告诉接收方,我当前从第Seq个字节开始发送len个字节数据(不包括以太网Eth头,IP头和Tcp头,也就是纯数据长度)给你,而Ack则是接收方给发送方回复:接收方回复的Ack=发送方Seq+发送数据长度len。
在建立连接双方握手时,发送方的Seq为0,表示发送的数据长度也为0,这时接收方收到数据帧后,会判断Seq+数据长度为0或者Seq+数据长度为1的话,那么在回应发送方的Ack的值就为1(也就表示确认号有效,为0的话就表示数据包中不包含确认信息(即不含有Ack字段),忽略确认号字段)。
在数据传输中,如果Seq+数据长度不为0或1并且数据长度不为0的话,则回应时的Ack就等于Seq+数据长度的值,这就表示我已经收到Seq+数据长度个字节的数据。发送方收到该Ack就会比较自己的Seq+刚发出去的纯数据长度,如果一致,则回应接收方的Ack,并且发送下一个包,否则将重发该包,若超时还没收到Ack也会重发该包。

请添加图片描述

我是一个努力成长的小白,如果这篇文章对你有帮助记得点赞,如果有不足或者错误欢迎在评论区及时指出。

### Wireshark 中 MySQL 过滤器的配置与使用 在处理Wireshark中MySQL过滤器无法正常使用的问题时,需了解几个关键方面。确保捕获设置正确以及理解特定于MySQL的数据包筛选语法是解决问题的核心。 #### 正确配置Wireshark以捕捉MySQL通信数据 为了能够有效利用MySQL显示过滤器,在启动数据包捕获前应确认已选择了适当接口并设置了必要的捕获选项。如果目标是在局域网内监控数据库服务器活动,则应当指定涉及的相关主机或子网范围[^1]。 对于MySQL流量而言,默认情况下其服务监听TCP端口3306;因此可以考虑采用如下方式限定捕获范围: ```bash tcp port 3306 ``` 这将仅限于记录进出此端口号上的通讯会话,从而减少无关噪声干扰最终分析过程。 #### 使用恰当的显示过滤表达式 一旦完成初步的数据收集工作之后,下一步就是应用合适的显示过滤条件来聚焦感兴趣的事件。针对MySQL协议层面的操作,可借助内置的支持功能实现精细化检索。例如要查看所有的查询语句执行情况,可以用到`mysql.query`字段匹配机制[^2]。 然而当发现某些预期之外的行为发生——比如自定义创建的过滤规则未能生效——可能是因为版本兼容性差异或是具体命令格式不被识别所引起。此时建议参照官方文档说明调整参数组合形式,并尝试更新至最新稳定版程序环境以便获得更广泛的功能支持和错误修复补丁集合[^3]。 另外值得注意的是并非所有类型的SQL指令都能直接经由简单字符串模式进行定位提取,特别是那些嵌入了特殊字符或者采用了预备编译特性的情况。面对这类复杂场景则往往需要依赖更加高级别的解析技术手段来进行深入挖掘研究。 #### 解决方案总结 - **验证捕获设置**:确保正在监视正确的网络接口并且已经指定了适当的BPF(Berkeley Packet Filter)表达式用于限制输入源。 - **检查Wireshark版本**:保持应用程序处于最新的发行状态有助于规避潜在缺陷影响核心业务逻辑正常运作。 - **查阅手册资料**:遇到难以解释的现象时不吝寻求帮助,访问开发者社区论坛分享经验心得亦不失为一种高效的学习途径。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

曼走丶999

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值