目录

Wireshark的使用

1.下载

2.安装

数据包的捕获和基本用法

过滤器

捕获过滤器

捕获过滤器的 BPF 语法

显示过滤器

比较操作符和逻辑操作符

预定义过滤器


前言:前面三次握手和四次挥手用的抓包工具就是Wireshark,本节主要介绍其简单的使用,不用死记硬背,知道大概的使用方法就行,至于命令搞个专门记录命令的文档记录,用的时候直接用就好了。

提问:为什么要抓包?

解答:

1、定位网络问题;
2、分析接口数据;
3、学习网络协议,使用抓包工具分析网络数据更直观。
大部分场合都可以通过程序调试来定位问题,但有些场景使用抓包来定位接口问题更准
确、更方便,如以下场景:
1、你发送数据给后台,但后台没有收到,可以对接口进行抓包分析,看是后台处理有
问题,还是没有将数据发出去,或是发送数据格式有误;
2、你和后台接口联调测通,但业务数据对不上,你认为是后台问题,后台认为是你发
的问题,可以抓包确认问题所在;
3、线上出现 bug 需要定位,但你没在公司,没有代码可调试,可直接抓包分析;
4、系统性能不佳,抓包看下接口响应时长,是不是后台出现性能问题。
常用的抓包工具有:F12(浏览器自带的抓包工具)、Fiddler、Charles,Wireshark。而
Wireshark 在支持的协议,用户友好度、价格(开源)、程序支持、支持的操作系统上都很
好,所以 Wireshark 也是我们最常用的抓包工具和报文分析工具。

Wireshark的使用

1.下载

官网下载:https://www.wireshark.org/download.html

根据自己笔记本的配置,选择对应的配置下载就好

2.安装

基本上都是默认选项,也可以根据自己需求选择。

需要注意的是在当弹出是否需要安装 Npcap/WinPcap 的对话框时, 务必确保 Install。

WinPcap 驱动是 Windows对于 pcap 数据包捕获的通用程序接口(APT)的实现,简单来说就是这个驱动能够通过操作系统捕捉原始数据包、应用过滤器,并能够让网卡切入或切出混杂模式。[ 混杂模式就是接收所有经过网卡的数据包,包括不是发给本机的包,即不验证 MAC 地址。普通模式下网卡只接收发给本机的包(包括广播包)传递给上层程序,其它的包一律丢弃。一般来说,混杂模式不会影响网卡的正常工作,多在网络监听工具上使用。

USBPcap 就没必要安装了。

数据包的捕获和基本用法

进入程序后,我们发现有活跃的网络(红框处),双击这一行,Wireshark 开始捕获数据,并在窗口中显示,可以看见随着时间前进,窗口中不断刷新。等上几秒钟,结束捕获,单机工具栏中的
按钮,或者“捕获”下拉菜单中选择“停止”选项即可。

笔者点击Adapter for loopback traffic capture ,这个时候可以看见,Wireshark 窗口中显示了大量的数据,数据内容分布如下:

数据包列表:最上面的面板用表格显示了当前捕获文件中的所有数据包,其中包括了数据包序号、数据包被捕获的相对时间、数据包的源地址和目标地址、数据包的协议以及在数据包中找到的概况信息等列。
包详情:中间的面板分层次地显示了一个数据包中的内容,并且可以通过展开或是收缩来显示这个数据包中所捕获到的全部内容。
包数据的字节形式显示:最下面的面板显示了一个数据包未经处理的原始样子,也就是其在链路上传播时的样子。这些原始数据当然不容易理解。

在数据包列表中,可以很明显看见每行的五颜六色,这些颜色其实是 Wireshark 用来区分不同的协议的。可以通过 Coloring Rules (着色规则)窗口可以很容易地查看或修改每个协议所对应的颜色。如果想要打开这个窗口,可以在“视图”下拉菜单中选择的“着色规则”选项即可。

同时捕获的数据包可以导出为文件,也可以将数据包文件导入 Wireshark 进行分析。

过滤器

过滤器可以让你找出你所希望进行分析的数据包。简单来说,一个过滤器就是定义了一定条件,用来包含或者排除数据包的表达式。如果你不希望看到一些数据包,你可以写一个过滤器来屏蔽它们。如果你希望只看到某些数据包,你可以写一个只显示这些数据包的过滤器。

例如:我们只想抓mysql端口的数据包就可以 设置捕获规则 port 3306 这样就能抓到我们想要的包了。

Wireshark 主要提供两种主要的过滤器。

  • ·捕获过滤器:

当进行数据包捕获时,只有那些满足给定的包含/排除表达式的数据包会被捕获。

  • 显示过滤器:

该过滤器根据指定的表达式用于在一个已捕获的数据包集合中,隐藏不想显示的数据包,或者只显示那些需要的数据包。

捕获过滤器

捕获过滤器用于进行数据包捕获的实际场合,使用它的一个主要原因就是性能。如果你
知道你并不需要分析某个类型的流量,你可以简单地使用捕获过滤器过滤掉它,从而节省那
些会被用来捕获这些数据包的资源。
比如,我们现在要捕获我们机器上所有 TCP类型的数据包,怎么做?在“捕获”下拉
菜单中选择“选项”,弹出窗口中:

点击开始:

我们发现捕获到所有的TCP协议

捕获过滤器的 BPF 语法

捕获过滤器应用于 WinPcap/NPcap,并使用 Berkeley Packet Filter(BPF)语法。
这个语法被广泛用于多种数据包嗅探软件,主要因为大部分数据包嗅探软件都依赖于使
用 BPF 的 libpcap/WinPcap 库。掌握 BPF 语法对你在数据包层级更深入地探索网络来说,
非常关键。
使用 BPF 语法创建的过滤器被称为表达式,并且每个表达式包含一个或多个原语。每
个原语包含一个或多个限定词,然后跟着一个 ID 名字或者数字
Type 指出名字或数字所代表的意,例如: host、port
Dir 指明传输方向是前往还是来自 例如:src、dst
Proto 限定所要匹配的协议 例如:ether、ip、tcp、udp、http、ftp
例如:
dst host 192.168.0.10 && tcp port 80
这是一个捕获过滤器样例,其中“dst host 192.168.0.10”就构成了一个原语,我们的样
例里有两个原语,两个原语用逻辑运算符“&&”组合了起来。逻辑运算符共有三个:
连接运算符: 与 (&&)
选择运算符: 或 (||)
否定运算符: 非 (!)
对我们的样例来说,表示捕获的数据包应该满足条件为:目的主机是 192.168.0.10,通
信协议是 tcp,源端口或者目的端口是 80。

主机名和地址过滤器

我们所创建的大多数过滤器都会关注于一个或一些特定的网络设备。根据这个情况,可
以根据设备的 MAC 地址、IPv4 地址、IPv6 地址或者 DNS 主机名配置过滤规则。比如:
捕获所有和主机 IPv4 地址相关的流量:
host 192.168.0.10
捕获所有和主机 Ipv6 地址相关的流量:
host fe80::1945:cbf1:1393:8f17
使用基于一台设备的主机名 host 限定词进行过滤:
host remoteserver
考虑到一台主机的 IP 地址可能会变化,你可以通过加入 ether 协议限定词,对它的 MAC
地址进行过滤:
Ether host 24-41-8C-26-04-9F
当然还可在 host 之前加 src 或者 dst 进行传输方向的限定。
端口和协议过滤器
只对 8080 端口进行流量捕获:
port 8080
想要捕获除 8080 端口外的所有流量
!port 8080
端口过滤器一样和传输方向限定符一起使用,比如:
dst port 80
协议过滤器可以让我们基于特定协议进行数据包过滤。BPF 语法甚至提供给我们的一项
强大功能,就是我们可以通过检查协议头中的每一字节来创建基于那些数据的特殊过滤器。
比如:
tcp[13]&4=4
表示捕获的数据是 tcp 协议的数据包,且 tcp 数据包中第 13 个字节的第 4 位被设置了。

显示过滤器

显示过滤器应用于捕获文件,用来告诉 Wireshark 只显示那些符合过滤条件的数据包。
你可以在包列表面板上方的 Filter 文本框中,输入一个显示过滤器。

显示过滤器的语法不同于捕获过滤器,比如我们通过捕获功能,捕获了本机所有的数据包

我们不需要TCP

输入 !TCP 确认

我们发现TCP协议的数据包已经没了

现在我们多加一个限定,只显示 ip 地址为 192.168.18.1的数据包

我们看见,显示的数据包就变为:不是 TCP 数据包,同时源地址或者目的地址是192.168.18.1。

比较操作符和逻辑操作符

在我们上面的过滤条件“!udp and ip.addr==40.90.189.152”中,牵涉到了过滤条件的比
较操作符和逻辑操作符:比较操作符可以让你进行值的比较。

举例来说,当你在检查一个 TCP/P 网络中的问题
时,你可能经常需要检查和某一个 IP 地址相关的数据包。等于操作符可以让你创建一个只
显示 192.168.0.1 这个 IP 地址相关数据包的过滤器。
ip.addr==192.168.0.1
比较操作符还有:
等于 ==
不等于 !=
大于 >
小于 <
大于或等于 >=
小于或等于 <=
逻辑操作符有:
and 两个条件需同时满足
or 其中一个条件被满足
xor 有且仅有一个条件被满足
not 没有条件被满足
尽管在理论上编写过滤器表达式很简单,但针对不同问题创建过滤器时,依然需要许多
特定的关键词与操作符。可以到 Wireshark 的官网查看:
https://www.wireshark.org/docs/dfref

比如 tcp 相关的,可以通过单击具体条目查看更多:

预定义过滤器

过滤器可以事先设置好,不需要每次使用时都重新输入,捕获过滤器在菜单“捕获”-“捕获过滤器”中设置,显示过滤器在菜单“分析”-“Display Filters” 中设置。

 捕获过滤器

显示过滤器

网络协议和Netty(7):常用的网络抓包工具 Wireshark相关推荐

  1. 网络抓包工具 Wireshark 和 tcpdump(三)

    今天我们分享网络抓包工具 Wireshark 和 tcpdump 一.WireShark工具  1.为什么要抓包 1).定位网络问题: 2).分析接口数据: 3).学习网络协议,使用抓包工具分析网络数 ...

  2. 网络协议和Netty(4):大白话说三次握手及用一个数据库连接解释三次握手

    前言: 想起了第一次听说"三次握手"概念的时候.那时候刚到北京,朋友傲娇的跟我讲,我花了两天我终于搞懂了三次握手.当时对网络一无所知的我,还以为是啥新的礼仪方式,心中感叹,帝都人民 ...

  3. 网络抓包工具Wireshark与tcpdump介绍

    文章目录 1.网络协议介绍 2.Wireshark工具介绍 2.1 Wireshark的使用 3.tcpdump工具介绍 3.1 tcpdump的使用 3.2 tcpdump的源码与编译 1.网络协议 ...

  4. 爬虫进阶:电脑软件手机APP常用的爬虫抓包工具

    在学习爬虫进阶路上少不了用到一些抓包工具,今天就给大家隆重推荐6款爬虫抓包神器. 聊一聊:爬虫抓包原理 爬虫的基本原理就是模拟客户端(可以是浏览器,也有可能是APP)向远程服务器发送 HTTP 请求, ...

  5. 网络协议和Netty——第二章 Java原生网络编程学习笔记

    编程中的Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口.在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说, ...

  6. 常用网络工具5:网络抓包工具wireshark

    Wireshark(前称Ethereal)是一个网络数据包分析软件.网络数据包分析软件的功能是截取网络数据包,并尽可能显示出最为详细的网络数据包数据.Wireshark使用WinPCAP作为接口,直接 ...

  7. 网络抓包工具 wireshark教程

    Wireshark(前称Ethereal)是一个网络数据包分析软件.网络数据包分析软件的功能是截取网络数据包,并尽可能显示出最为详细的网络数据包数据.Wireshark使用WinPCAP作为接口,直接 ...

  8. 网络抓包工具wireshark 安装教程

    Wireshark(前称Ethereal)是一个网络数据包分析软件.网络数据包分析软件的功能是截取网络数据包,并尽可能显示出最为详细的网络数据包数据.Wireshark使用WinPCAP作为接口,直接 ...

  9. 网络抓包工具 wireshark 入门教程

    Wireshark(前称Ethereal)是一个网络数据包分析软件.网络数据包分析软件的功能是截取网络数据包,并尽可能显示出最为详细的网络数据包数据.Wireshark使用WinPCAP作为接口,直接 ...

最新文章

  1. Echo团队Alpha冲刺随笔 - 第九天
  2. 两个有序单链表的并交差运算
  3. 初级java开发学习路线_成为初级全栈Web开发人员的10分钟路线图
  4. 秒懂QPS、TPS、PV、UV、GMV、IP、RPS!
  5. 【转】解决从jenkins打开robot framework报告会提示‘Opening Robot Framework log failed ’的问题...
  6. 我的技术家园,吸取精神食粮的天堂
  7. clion在使用sqlite3的时候,显示Undefined symbols for architecture x86_64错误的解决办法
  8. 按用户设置计算机权限,巧妙设置用户权限 管理学生机房计算机
  9. 执行了rm-f,除了跑路,如何恢复?
  10. JDY-10M蓝牙简易组网教程
  11. C++程序加速的12个方法
  12. 互联网日报 | 虎牙与斗鱼官宣合并;国内第四大运营商中国广电成立;拍拍贷完成存量业务清退...
  13. 项目经理的“势能”培养 (转)
  14. linux文本三剑客演讲稿,Linux文本三剑客总结
  15. VMWare 文件格式详解 .VMX .VMSD .VMDK
  16. 在天堂与地狱之间——清华浪子梦断中关村 (转)
  17. 打印魔方阵(C语言)
  18. Java多态性:Java什么是多态?
  19. List拆分为多个list
  20. 爬虫项目-人大法律文件

热门文章

  1. BUUCTF Crypto题目记录
  2. python工程全局变量_:PYTHON之全局变量
  3. TXS0104EPWR芯片介绍(双向逻辑电平转换器,4通道,50 mA,4.6 ns,1.65 ~3.6V电平输入 至 2.3~5.5 V电平输出)
  4. 如何使用Reaver-PJ-Wi-Fi网络的WPA密码
  5. java docx4j动态生成表格,保存为word,并通过Libreoffice转PDF
  6. 阿里遭背刺,1亿美元收购的开源项目,核心团队出走,转头又卖了1个亿
  7. 源码来袭!!!基于jquery的ajax分页插件(demo+源码)
  8. 职业生涯规划-技术还是管理
  9. 【天赢金创】Reflux学习指南
  10. Gym - 102219J Kitchen Plates(暴力或拓扑序列)