实战网络问题排查(三) -- wireshark 使用详解

2021-06-11 17:53:47   最后更新: 2021-06-11 17:55:03   访问数量:197




 

连续两篇文章,我们详细介绍了 tcpdump 的使用方法:

 

实战计算机网络问题排查(一) -- tcpdump 原理与基础参数

 

实战计算机网络问题排查(二) -- tcpdump 的过滤指令

 

然而,tcpdump 工具产生的结果纷繁复杂,靠肉眼难以在大量的抓包结果信息中马上定位到我们需要的信息,此时,一个方便好用的可视化工具就显得尤为重要了。

 

现今最为流行的网络封包分析软件要数 wireshark 了,他自带了抓包分析工具,同时也支持对 pcap 文件进行分析,可以支持各种网络数据包的截取和分析,显示数据包详细信息。有了他,我们解决起网络问题就能够得心应手手到擒来了。

 

本文我们就来详细介绍 wireshark 的安装和使用,对于具体问题的抓包分析,我们后面会有系列文章来进行详细讲解,敬请期待。

 

 

wireshark 安装非常简单,只要从官网下载安装包然后按照提示安装即可:

 

https://www.wireshark.org/#download

 

 

3.1 利用 wireshark 抓包

 

wireshark 打开后的界面入下图所示:

 

 

 

图中框选的按钮从左到右分别是:开始抓包、停止抓包、重新抓包、抓包配置。

 

如果你想要利用 wireshark 进行抓包,那么只要进行简单的配置,勾选你想要抓包的网卡,点击开始抓包就可以了。

 

通过 Capture 菜单的 Capture Filters 选项,可以在抓包前设置抓包过程中需要应用的过滤器。

 

3.2 利用 wireshark 分析 pcap 文件

 

通常,我们使用 wireshark 更加常见的场景是分析 tcpdump 通过 -w 参数产生的原始 pcap 文件。

 

此时,只要点击 File 菜单的 Open,选择我们预先准备好的 pcap 文件即可。

 

 

一旦完成抓包或 pcap 文件的加载,就可以看到下面的界面:

 

 

 

如图所示,wireshark 界面主要分为以下几个区域:

 

  1. 过滤栏 -- 用于输入过滤语句对抓包数据进行过滤。
  2. 数据列表区 -- 每一行是一个数据包,包含编号,时间戳,源地址,目标地址,协议,长度,以及数据包信息。
  3. 数据详情区 -- 显示选中数据包中的详细数据信息。
  4. 数据字节区
  5. 数据统计区 -- 显示包总数等统计信息。

 

4.1 数据列表区

 

我们先来看数据列表区,界面非常直观,我们可以在界面上一目了然的看到每个数据包是从哪里发送到哪里,是什么协议,以及包大小等等信息。

 

并且可以看到,不同类型的数据包用不同的颜色标记了出来,你可以通过 View 菜单的 Coloring Rules 选项去查看和修改配色。

 

4.2 数据详情区 & 数据字节区

 

数据详情区显示了一个数据包的详细情况:

 

 

 

如图所示,数据详情区按照 OSI 模型显示了数据包的五层详情信息:

 

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

 

点击左侧的按钮展开可以看到每个或某几个字节的具体值。

 

在数据字节区,可以看到每个字节具体的十六进制值与 Ascii 值。

 

 

只要在过滤栏填写过滤规则,就可以实现对数据列表中的抓取数据进行过滤了。

 

5.1 运算符

 

与大部分编程语言一致,wireshark 支持的运算符有以下这些:

 

  • !=
  • >
  • <
  • >=
  • <=
  • and
  • or

 

5.2 协议过滤

 

只需要输入小写协议名即可,例如:

 

  • tcp
  • http
  • icmp

 

5.3 ip 过滤

 

wireshark 支持对来源、目的 ip 进行过滤:

 

  • ip.src == 192.168.1.101
  • ip.dst == 192.168.1.101
  • ip.addr == 192.168.1.101

 

5.4 端口过滤

 

同样,wireshark 也支持对来源、目的端口进行过滤:

 

  • tcp.port == 80
  • tcp.srcport == 80
  • tcp.dstport == 80

 

5.5 http 方法过滤

 

对于 http 数据包,可以通过 http 方法进行过滤:

 

http.request.method == "GET"

 

 

欢迎关注微信公众号,以技术为主,涉及历史、人文等多领域的学习与感悟,每周都有精彩推文,全部原创,只有干货没有鸡汤

 

 

 

 

TCP/IP 详解

 






linux      network      tcp      技术贴      icmp      tcpdump      wireshark     


京ICP备2021035038号