前言

看了林沛满的《Wireshark网络分析就是这么简单》,想着记录下作为使用手册,方便后面查阅,文章内容后续再慢慢填充,希望文章能成为使用Wireshark工具的手册。

其实书中不是单独介绍Wireshark工具的使用,更多是借助Wireshark解决问题,同时介绍了多个协议的原理。
Wireshark软件,发明者Gerald Combs;软件问世于1998年。


功能介绍

软件下载地址见官网>
Wireshark的相关wiki地址>、用户使用指导>

下文部分截图源于Wireshark版本 Version 4.0.4


过滤

关于过滤的使用见官方地址>

主界面如下所示:
image-1703226672875

本地一般抓取en0这个网络接口下的网络包。en 代表 “Ethernet”,是以太网接口的缩写,而数字 0 表示这是第一个或主要的以太网接口。通常指Wifi。

过滤方式有两种:

  • capture filter:主要减少抓取的原始包大小,仅捕捉关心的包;在抓包前配置,抓包期间不能修改。格式如 tcp port 80
  • display filter:主要用于在已抓包中,展示想看的包;抓包过程中是可以修改的。格式如 tcp.port==80

示例1

  • capture filter:tcp port 80:抓取tcp对应端口为80的发送和接收包。
  • display filter:tcp.port==80,展示tcp对应端口为80的发送和接收包。

示例2
连接符合:and/or;非符合:not

  • capture filter:tcp port 23 and host 10.0.0.5,抓取端口为23的telnet及host为10.0.0.5的包
  • display filter:tcp.port == 23 and ip.addr == 10.0.0.5,展示端口为23的telnet及ip地址为10.0.0.5的包

telnet命令 默认端口是23


示例3
更多的display filter,选中主页面的任意数据右键 -> Apply as Filter -> Selected,如下图所示。
image-1703228892091

下面的数据区域也可进行右键设置展示过滤。


关于更多的capture filter:

  • todo

关于更多display filter:

  • tcp.analysis.zero_window:过滤Window窗口为0的包。
  • 在display filter输入框按回车键,可以出来提示。

分析

看网络分层

WechatIMG753

从每个包的数据区域可以看到,从上到下表示了网络分层依次是:

  • Frame(物理层): 物理层的数据帧概况。
  • Ethernet(数据链路/网络接口层):可以看到设备的mac地址。
  • Internet Protocol(网络层):对TCP的数据进行IP地址包装,确定接收和发送方地址。
  • Transmission Control Protocol(传输层):使用如tcp或udp协议,进行数据的控制传输。

再往下便是应用层数据。


性能分析

关于分析的介绍见官方文档参考1参考2>

1、看抓取包的总览情况:
Statistics -> Capture Filter properties。(有的版本是 Statistics -> Summary)

2、看TCP各项指标统计:
Statistics -> TCP Stream Graphs -> 选择不同的观察指标

3、看部分协议请求与响应时间
Statistics -> Service Response Time -> 选择对应的协议

4、查看是否有网络报错情况,如TCP重传、乱序等情况
Analyze -> Expert Information


配置

1、Wireshark配置是否使用TCP相对Sequence Number
Perferences -> Protocols -> TCP -> 勾选Relative sequence number


案例

略略略,希望将来有机会补充。


总结

网络抓包分析进行问题定位,需要对不同的网络协议有比较深入的了解,在此之后,借助Wireshark方能事半功倍。所以前提或基础是对不同协议的学习,再接再厉。