你知道常用的抓包工具有哪些?Fiddler、charles、Wireshark,我们常接触的无非这几种,前面介绍过fiddler,它跟charles一样,简单易用,协议数据清晰可视。对于常见抓包场景Fiddler、charles已经够用了。

为啥还要学习Wireshark?

因为Fiddler、charles采用是web代理的方式捕获数据包,无法完成如下这两个场景:

  • 抓取非HTTP、HTTPS协议的数据,

  • 抓取服务端的数据。

Wireshark是什么?

Wireshark 当前应用最广泛的网络协议分析工具,它是一个多协议的网络分析工具,不仅仅支持http、https,而是支持常见的所有协议,并且支持多平台,Windows、linux、mac都不在话下。

Wireshark这么强大,我们一般用它来做什么?

用户通常使用Wireshark来学习各种网络协议,定位分析网络问题,分析应用程序使用何种协议进行工作。

1.下载安装

官方下载地址:https://www.Wireshark.org/download.html下载后直接双击安装即可。

2.界面基本介绍

启动Wireshark后,首先加载的是网卡接口选择界面。根据需要选择监听的网卡。

快速学习多协议抓包利器Wireshark_java

选择网卡之后,Wireshark开始自动捕获协议数据,整个窗口布局如下:

快速学习多协议抓包利器Wireshark_java_02

Wireshark抓取的数据包与七层OSI模型的关系

快速学习多协议抓包利器Wireshark_java_03

3.过滤器

由于Wireshark直接捕获底层网络数据包,导致其捕获的数据包数量通常较大。为了便于筛选数据包,去除冗余的信息,Wireshark提供了两种好用的过滤器,便于我们有针对性的对数据包进行筛选分析。过滤器会帮助我们在大量的数据中迅速找到我们需要的信息。


两种过滤器:捕获过滤器,显示过滤器。

1、捕获过滤器:提前设置需要抓取的数据包规则,减小报文的体积。操作路径:Capture(捕获)-->Options(选项)-->Capture Filter(捕获过滤器)

快速学习多协议抓包利器Wireshark_java_04


进入捕获>捕获过滤器,wireshark已经提供了一些常见的过滤规则。

快速学习多协议抓包利器Wireshark_java_05

语法规则: 语法:<**Protocol><Direction><Host(s)><Value><LogicalOperations><Otherexpression>**
常用捕获过滤语句举例:

  • 只显示目的TCP端口为8080的数据包: tcp dst port8080

  • 只显示来源IP地址为192.168.171.201的数据包: ip src host192.168.171.201

  • 只显示目的P地址为192.168.5.231的数据包: ip dst host192.168.5.231

  • 只捕获主机192.168.5.001的http流量: host192.168.5.001andport80andhttp

2、显示过滤器:对已经抓取的报文进行筛选过滤,可以在捕获过程中或者捕获后随时更改,比捕获过滤器功能更强大。

语法规则: 语法:<**Protocol><String1><String2><Comparisonoperator><Value><LogicalOperations><Otherexpression>**

直接过滤框中输入过滤规则

快速学习多协议抓包利器Wireshark_java_06

常用显示过滤语句举例:
筛选含有IP地址192.168.0.1的数据包ip.addr==192.168.0.1筛选源地址是192.168.171.1的数据包ip.src==192.168.171.1筛选目的地址是192.168.171.1的数据包ip.dst==192.168.0.1只显示含有80端口的数据包tcp.port==80所有的HTTP POST请求http.request.method=="POST"URL中包含baidu的http请求http.request.uri contains"baidu"

关于Wireshark几个好用的技巧

技巧1:直接选中具体的数据摘要或者详情信息,右键选择作为过滤器。

快速学习多协议抓包利器Wireshark_java_07


技巧2:在过滤规则输入框右侧点击表达式,根据需要使用的规则、关系、值进行组合。

快速学习多协议抓包利器Wireshark_java_08

技巧3:选择需要具体分析的数据包,然后右键选择“追踪流”,选择协议,就可以看到与这对ip和端口以及协议相同的全部通信。

快速学习多协议抓包利器Wireshark_java_09

Wireshark还有强大的数据包分析功能,大家可以自行百度学习。


快速学习多协议抓包利器Wireshark_java_10