1.1 简介

Wireshark(前称Ethereal)是一款功能强大的网络抓包分析工具,利用它可将捕获到的各种各样协议的网络二进制数据流翻译为人们容易读懂和理解的文字和图表等形式,极大地方便了对网络活动的监测分析。它有十分丰富和强大的统计分析功能,可在Windows,Linux 和UNIX等系统上运行。它的名称于2006年5月由原Ethereal改为Wireshark。Wireshark网络协议分析软件可以十分方便直观地应用于计算机网络原理,网络的日常安全监测,网络性能参数测试,网络恶意代码的捕获分析,网络用户的行为监测,黑客活动的追踪等。因此它在世界范围的网络管理专家,信息安全专家,软件和硬件开发人员中,大学科研和实验工作中得到广泛的应用。

1.2 安装工具

1、安装TCPdump工具

输入命令:yum install tcpdump

安装TCPdump。
2、安装Wireshark工具

输入命令:yum install wireshark

安装Wireshark。
3、安装wireshark-gnome

输入命令:yum install wireshark-gnome

安装wireshark-gnome。

1.3 使用wireshark

1、 打开wireshark界面

输入命令:wireshark

打开wireshark界面如下图所示:

2、 Capture Options(捕获选项)各项的含义与设定点击右上角接口按钮,或点击菜单栏"Capture"的"Options"打开接口列表对话框,如下图所示:
在接口列表对话框中,点击“Options”按钮,弹出下图所示的捕获选项窗口:

通过上图,可以看到,Capture Options弹窗根据设置内容的不同,大致可以分为五个区域【图中分别用五个红色方框标注】。下面按照从上到下,从左到右的顺序,分区域依次介绍各个选项所包含的涵义,设置与否对我们有何影响。

  1. Capture[抓包相关设定]

    通过上图,可以看到,这个区域的选项都是会对数据包的捕获产生直接影响的,按照自上而下的顺序,具体包括:
    (1) 网卡列表
    位于此区域最上方,用于网卡的选择,勾选一项或多项复选框,则可在所选的网卡上抓包。
    (2) 选项:Capture on all interfaces
    勾选此选项,则表示捕获本机所有网卡上的网络数据包【这和上方的列表中勾选了所有的网卡是等价的】;反之,则只捕获网卡列表中指定网卡上的数据包。
    (3) 选项:Use promiscuous mode on all interfaces
    勾选此选项,则意味着Wireshark在抓包的时候让网卡开启混杂模式。简单点说,开启混杂模式的网卡可以捕获所有流过该网卡的帧,不开启则只能捕获广播帧以及发给该网卡的帧。
    (4) 按钮:Manage Interfaces点这个按钮,可以增、删“网卡列表”里的条目。【里面还可以设置管道以及远程网卡作为数据包来源】

  2. Capture Files[存包相关设定]
    这个区域的选项仅当你想要自动存包时才需要设置。实际应用中,有些情况下只是一个简单的临时分析,是不需要存包的;也有些情况是我们先实时捕获放在缓存,先大致看过后再选择性地存文件。这两种情况下,都不用设置这个区域的选项。
    (1) 输入框:File直接通过输入或是使用后方的Browse按钮,指定存放的文件名及其完整路径。默认是空白,意味着捕获的数据包存放在默认缓存目录下的临时文件中。

(2) 选项:Use pcap-ng format勾选这个选项,则Wireshark存文件时使用pcapng格式。当同时指定在多块网卡上抓包时,必须使用pcapng格式存文件;出于兼容考虑,单块网卡上的抓包不建议勾选。
(3) 选项:Use multiple files勾选此选项,则Wireshark会使用多个文件存储数据包;反之,则默认使用单文件存储。使用单文件还是多文件,取决于数据量的大小、你的目的等多个要素。
(4) 选项:Next file every N megabytes(s)/minute(s)
如果上面没有勾选“Use multiple files”,则此选项被禁、无效。使用多个文件存储时,必须指定切换下一个文件的条件。切换条件有两种形式,一是每当捕获多少流量(默认单位是Mb,也支持更小一点的Kb,以及更大一点的Gb)后切换,另一种是每当捕获间隔多长时间(默认单位分钟,也支持秒、小时、天)后切换。使用多个文件存储时,两种切换方式至少选其一!
(5) 选项:Ring buffer with N files如果上面没有勾选“Use multiple files”,则此选项被禁、无效。使用多个文件存储时,如果对文件数量有限制,且允许文件覆盖,可以勾选并设定此选项。这意味着,Wireshark在存包时最多创建N个文件,当达到切换条件需要创建第N+1个文件时,它会直接把捕获的数据包存入到当前最“老”(生成时间最早)的文件中,从而让最“老”的文件变成最“新”的文件。这就好比建立了一个容量为N的环形缓冲队列。
(6) 选项:Stop capture after n file(s)如果上面没有勾选“Use multiple files”,则此选项被禁、无效。使用多个文件存储时,如果对文件数量有限制,且不允许文件覆盖,可以勾选并设定此选项。这意味着,Wireshark在存包时最多创建N个文件,当达到切换条件需要创建第N+1个文件时,它就直接停止抓包。这种自动停止抓包的方法仅适用于指定使用多个文件存储时。
3) Stop Capture Automatically After[自动停止抓包设定]

在这个区域的选项可以帮助我们通过设置一些条件来让Wireshark自动停止抓包,需要额外提到的是,这些选项之间不是互斥的,可以勾选多个,他们之间是“或”的关系。
(1) 选项:N packet(s)勾选此选项后,Wireshark会在捕获到指定个数的数据包后,会自动停止抓包。
(2) 选项:N megabytes(s)勾选此选项后,Wireshark会在捕获到指定大小的数据流量后,会自动停止抓包。默认流量
单位是Mb,也支持更小一点的Kb,以及更大一点的Gb。
(3) 选项:N minute(s)勾选此选项后,Wireshark会以开始捕获为计时起点,经过指定长短的时间后,自动停止抓
包。默认时间单位分钟,也支持秒、小时、天。
4) Display Options[显示选项设定]

这个区域的选项用来对实时捕获的展示效果施加影响。
(1) 选项:Update list of packets in real time
勾选这个选项,会使得Wireshark在抓包时同时开启两个进(线)程,一个进(线)程负责捕获数据包,另一个进(线)程负责实时地解析、展示捕获的数据包;反之,Wireshark就会“一心一意”地抓包,等到停止抓包后,再一次性解析、展示所有捕获的数据包。显然的是,实时地解析、展示数据包,或多或少都会消耗CPU资源,所以会对捕获性能产生不小的影响,丢包率可能会因此而增大。
(2) 选项:Automatic scrolling in live capture
如果上面没有勾选“Update list of packets in real time”,则此选项被禁、无效。勾选这个选项,会使得Wireshark在开始抓包后, 将主窗口中的“数据包列表”子窗口自动滚动到最后一行,以便你随时都能在该子窗口的最底部看到最新捕获的数据包。不勾选,手动拖一下该子窗口的滚动条,效果也是一样的。
(3) 选项:Hide capture info dialog勾选这个选项, 会使得Wireshark抓包时,不弹出概要信息窗口,反之,则弹出该窗口。
5) Name Resolution[名称解析相关设定]

这个区域的选项用来对展示捕获结果时数据包各层的地址解析、显示效果作出设定。需要说明的是,这些解析结果只是临时性的,如果你把捕获的数据包存下来,Wireshark只会保存最原始的各层地址,而不会保存这些解析结果。
(1) 选项:Enable MAC name resolution勾选此选项后,Wireshark会尝试(但不保证)将MAC地址解析成更易识别的形式,例如:

仔细观察一下,你很容易发现,它其实只解析了MAC地址的前三个字节,后三个字节原封不动的保留在了解析结果里。这种解析的理论依据是,六字节的MAC地址其实可以对半分为两部分:前三个字节由IEEE的注册管理机构统一分配,称为OUI(组织唯一标识符)或是Company_id(公司标识符),一般可以通过这三个字节识别出生产厂商;后三个字节由厂商自行分配,意义不大。
(2) 选项:Enable network name resolution
勾选此选项后,Wireshark会尝试将网络层地址(一般就是IP地址)解析成更易识别的形式(例如域名、主机名)。它的实现一般是通过调用gethostname()的反向域名查询【参看《DNS中的正向解析与反向解析》】形式,这可能导致两个问题:
1.会因查询产生额外的DNS流量,在某些分析过程中,会影响分析结果的准确性;
2.会因查询占用系统资源而导致捕获性能受到影响。所以不建议抓包的时候勾选这个选项,分析的时候可以设置这个。
(3) 选项:Enable transport name resolution勾选此选项后,Wireshark会尽可能将传输层地址(一般就是端口号)解析成其对应的应用层服务。例如:

1. 80、8080 ==> http2. 21 ==> ftp3. 23 ==> telnet4. 25 ==> smtp5. 53 ==> dns6. 110 ==> pop37. 443 ==> ssl、tls

这种解析的原理在于,很多常用的服务往往绑定固定的端口号(0~1023),这些端口号一般称为熟知端口号或是系统端口号。

1.4 捕获和分析数据包

1、开始捕获数据包
如下图所示,可以在捕获接口窗口或捕获选项窗口点击start开始捕获数据包。几分钟后就捕获到许多的数据包了,主界面如图所示:


如上图所示,可看到很多捕获的数据。
第一列是捕获数据的编号;
第二列是捕获数据的相对时间,从开始捕获算为0.000秒;
第三列是源地址,第四列是目的地址;
第五列是数据包的信息。
选中第一个数据帧,然后从整体上看Wireshark的窗口,主要被分成三部分。上面部分是所有数据帧的列表;中间部分是数据帧的描述信息;下面部分是帧里面的数据。

2、开始分析数据

  1. arp协议数据分析
    在下图中Filter后面的编辑框中输入:arp(注意是小写),然后回车或者点击“Apply”按钮

    现在只有ARP协议了,其他的协议数据包都被过滤掉了。注意到中间部分的三行前面都有一个右三角号,点击它,这一行就会被展开。如下图所示:

    现在展开第一行。看到的结果如下:

在上图中我们看到这个帧的一些基本信息:
帧的编号:1(捕获时的编号)
帧的大小:42字节。再加上四个字节的CRC计算在里面,满足最小64字节的要求。
帧被捕获的日期和时间:Jan 11,2017……
帧距离前一个帧的捕获时间差:0.000000000……
帧距离第一个帧的捕获时间差:0.000000000……
帧装载的协议:ARP
现在展开第二行,我们可以看到:

Ethernet II帧格式
目的地址(Destination):ff:ff:ff:ff:ff:ff(这是个MAC地址,这个MAC地址是一个广播地址,就是局域网中的所有计算机都会接收这个数据帧)
源地址(Source):Vmware_6a:00:e6(00:0c:29: 6a:00:e6)。
帧中封装的协议类型:0x0806,这个是ARP协议的类型编号。
展开第三行:

地址解析协议
硬件类型:以太网
协议类型:IP
硬件大小:6
协议大小:4
发送方MAC地址:Vmware_6a:00:e6(00:0c:29: 6a:00:e6)
发送方IP地址:192.168.112.128(192.168.112.128)
目的MAC地址:00:00:00_00:00:00(00:00:00:00:00:00)
目的IP地址:192.168.112.254(192.168.112.254)
2) tcp协议数据分析
在下图中Filter后面的编辑框中输入:tcp(注意是小写),然后回车或者点击“Apply”按钮选中数据帧的列表中一行,则如下图所示,中间显示该数据帧的描述信息,注意到中间部分的三行前面都有一个右三角号,点击它,这一行就会被展开。


现在展开第一行。看到的结果如下:

在上图中我们看到这个帧的一些基本信息:
帧的编号:144(捕获时的编号)
帧的大小:60字节。再加上四个字节的CRC计算在里面,满足最小64字节的要求。
帧被捕获的日期和时间:Jan 11,2017……
帧距离前一个帧的捕获时间差:0.000005089……
帧距离第一个帧的捕获时间差:1671.429518118……
帧装载的协议:TCP
现在展开第二行,我们可以看到:Ethernet II帧格式目的地址(Destination):Vmware_ea:ea:68(00:50:56:ea:ea:68)

源地址(Source):Vmware_6a:00:e6(00:0c:29: 6a:00:e6)。
帧中封装的协议类型:0x0800,这个是TCP协议的类型编号。
展开第三行:

协议版本信息
版本:4位字段
数据报协议头长度:20字节
与源数据报的起始端相关的分片数据位置:0
Time-to-Live计数器:128
接收导入数据包的上层协议:TCP(6)
源主机IP地址:172.217.24.14(172.217.24.14)
目标主机IP地址:192.168.112.128(192.168.112.128)
展开第四行:
传输控制协议
源端口:443
目的端口:45317
序列号:4347
确认序列号:5274
协议头长度:20字节
接收缓冲区的空闲空间:64240

使用wireshark监控网络字节流相关推荐

  1. PYTHON黑帽编程1.5 使用WIRESHARK练习网络协议分析

    Python黑帽编程1.5  使用Wireshark练习网络协议分析 1.5.0.1  本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks At ...

  2. ping 监控网络延时

    环境 windows系统 需求 通过ping监控网络状态 解决 DOS中添加一个loop循环,以便监控ping状态,并命名一个文件名,注意根据需要给log.txt添加目录. :top echo %ti ...

  3. Shell图形化监控网络流量

    shell图形化监控网络流量 网络流量的监控工具有很多,如:Mrtg.Cacti.Zabbix等等,他们都有着各自的特点,不同的侧重,只为适合不同的应用场景的各种特殊需求.除了网络流量监控工具以外,还 ...

  4. 在 Linux/UNIX 终端下使用 nload 实时监控网络流量和带宽使用

    摘要:如果你想在命令行界面监控网络吞吐量,nload应用程序是个不错的选择.它是一个实时监控网络流量和带宽使用的控制台应用程序,使用两个图表可视化地展示接收和发送的流量,并提供诸如数据交换总量.最小/ ...

  5. 脚本监控网络状态,输出日志并归档(V2)

    脚本监控网络状态&日志归档整理(V2) 最近为检测***环境网络状态是否稳定,没有使用监控zabbix等监控工具,为方便快捷,使用脚本实现网络监控,并输出日志归档整理,方便后续排查. 在上次基 ...

  6. 在监控网络项目中该如何选择光纤交换机?

    现在,随着网络技术的发展,在安防监控项目中,尤其是在远距离点位的监控中,我们经常会用到光纤收发器.光纤交换机.那么,我们在监控网络中该如何选择光纤交换机呢?接下来就跟随飞畅科技的小编一起来详细看看吧! ...

  7. 从网络字节流中提出整数

    最近在做一个项目,就是设计一套通信协议,利用nginx来实现解析.协议内容是包括整数和字符串,现在客户端收到服务器端发送的网络字节流时,需要从中提取出整数,再根据整数决定发送数据量的大小.如下所示: ...

  8. linux 监控网络IO、磁盘、CPU、内存

    linux 监控网络IO.磁盘.CPU.内存 CPU:vmstat ,sar –u,top 磁盘IO:iostat –xd,sar –d,top 网络IO:iftop -n,ifstat,dstat ...

  9. 使用Sniffer Pro监控网络流量

    随着互联网多层次性.多样性的发展,网吧已由过去即时通信.浏览网页.电子邮件等简单的应用,扩展成为运行大量在线游戏.在线视频音频.互动教学.P2P等技术应用.应用特点也呈现出多样性和复杂性,因此,这些应 ...

  10. zabbix使用ICMP ping监控网络状态

    简介 zabbix为我们提供了多种监控方式,本文所说的ICMP ping正是zabbix内部的Simple check(简单检查),很实用的小功能,可以实时了解主机的网络状态. Zabbix在监控网络 ...

最新文章

  1. 2022-2028年中国干电池制造行业产销需求与投资预测分析报告
  2. 习题8-5 使用函数实现字符串部分复制 (20 分)
  3. Debain 安装ssh
  4. 信息学竞赛相关优秀文章合集[持续更新]
  5. [Leedcode][JAVA][第892题][图形题]
  6. 32k通过地址跳转到函数_【HYPERLINK】函数技巧,你一定要知道的!!!
  7. 第七章——DMVs和DMFs(4)——用DMV和DMF监控磁盘IO
  8. 微信小程序模板消息群发解决思路
  9. 熟练使用Jmeter,这个知识点你一定要看
  10. opencv-Getting Started with Videos
  11. 理解 Memory barrier(内存屏障)【转】
  12. 进程与服务的签名_服务器被黑客攻击后如何查找溯源攻击
  13. Agile Framework的专区上线
  14. 关于U-Net结构的更浅显更易懂的解释
  15. 【转】在IIS 7.0上使用自签证书来启用SSL
  16. tab选项卡不同样式的效果
  17. Adobe Photoshop CC 2018之ps磁性套索工具抠图(☆)
  18. 蓝魔手机回归产品本身 老战友魅族OPPO怎么看?
  19. 谷歌浏览器如何查看及设置网页编码格式(亲测可用)
  20. word to sql

热门文章

  1. Word标题不显示目录数字章节
  2. android10.0(Q) MTK 系统相机打开 USBCamera
  3. java几种锁_java中有几种锁
  4. 数据时代的来临,大数据价值主要体现在哪几个方面?
  5. 「案例」让房东在 Airbnb 上展示他们的热情好客
  6. 线和面的方程区别_直线方程和平面方程的区别
  7. rl滤波器原理_RL低通滤波器的原理是什么
  8. foo, bar, 甲乙丙丁
  9. redis 实践笔记和源码分析
  10. table 表格边框线去重