0x1 Wireshark安装和下载

老样子给出Wireshark下载地址Wireshark官网,下载完成后除了选择安装路径外都可以直接下一步默认安装配置。如果嫌下载慢我这还有刚下好的最新版本x64 v3.2.1,给大家带来便利网盘入口,密码:sayb 我这里安装的版本是Wireshark v3.0.6

wireshark中怎么看一个视频每秒多少帧 wireshark查看流量大小_服务器

0x2 Wireshark的安置

想要使用Wireshark首先要知道Wireshark部署位置,要根据当前需要抓包环境的完整网络拓扑图,至少要知道出故障网络的网络拓扑才能有效的进行网络抓包和诊断。根据网络拓扑图才可以找到合理安置Wireshark的位置。

安置Wireshark的方法:

1)确定要抓取并监控的设备发出的流量

2)将安装了Wireshark的主机或笔记本连接到目标主机所在的交换机上(同一局域网)

3)开启交换机的端口监控功能(该功能叫端口镜像或交换式端口分析器[Switched Port Analyzer,SPAN]),把受监控设备发出的流量重定向给Wireshark主机。

按照以上步骤就可以进行抓包了,这是最简单的操作。

Wireshark可以用来监控LAN端口、WAN端口、服务器/路由器端口或接入网络的任何其他设备发出的流量。需要按照下图所示方向配置端口镜像,即可监控到S2服务器所有进出流量,Wireshark也可以安装到S2服务器本身对本机抓包。

wireshark中怎么看一个视频每秒多少帧 wireshark查看流量大小_抓包_02


注意,流量监控的特性是需要交换机支持的,而不是Wireshark软件本身。

Wireshark软件包中自带WinPcat函数库,这个库主要作用是通过软件形式模拟网卡,并获取网卡收发消息的。(Windows下使用的类库,可以用这个进行开发类似Wireshark的网络分析小工具)

因为我是之前就安装过Wireshark,这里按照书中版本的安装截图进行说明

wireshark中怎么看一个视频每秒多少帧 wireshark查看流量大小_抓包_03


TShark组件:一种命令行协议分析器。

Wireshark 1/2:对老版本兼容软件,保证新版本出现问题可以随时切回老版本使用。安装这个比较稳妥。

拓展功能和和工具也都默认选上,里面有很多关于协议解析和过滤数据包好用的功能和工具。

0x3 操作方法

wireshark中怎么看一个视频每秒多少帧 wireshark查看流量大小_Wireshark_04

1、服务器流量监控

如上图所示,如果想要监控服务器的收发流量只需要将安装Wireshark的笔记本与服务器连接在相同交换机下,然后让该交换机重定向流量到Wireshark就可以开始抓包。也就是上图标号1所指向的位置。当然也可以直接在服务器上安装Wireshark本机抓包。

2、路由器流量监控

可以根据以下各种情形,来监控进出路由器的流量

情形1:监控路由器连接交换机的LAN口的进出流量

1)将Wireshark设备接在编号2的位置上(路由器和交换机中间)

2)开启交换机上的端口镜像功能,把与路由器LAN口相连的端口流量重定向至连接Wireshark主机的端口。

情形2:监控安装在路由器上的交换模块端口读进出流量

1)当路由器安装了一块交换模块时,如图编号6(5指的是WAN端口,6指的是LAN端口)

2)只能监控链接到交换模块的设备流量(因为路由器先把流量处理后交给了交换模块,交换模块再转交交换机,Wireshark接入的位置相当于交换模块和交换机之间自然只能接到交换模块的流量)

情形3:监控未安装交换模块的路由器的WAN口的流量

1)可在路由器WAN口和服务提供商(SP)网路间架设一台交换机,在该交换机上执行端口监控。如下图

wireshark中怎么看一个视频每秒多少帧 wireshark查看流量大小_wireshark_05


2)同样开启交换机端口监控功能,将连接WAN口的端口流量重定向到安装Wireshark的笔记本上。

情形4:嵌入了抓包功能的路由器

启用路由器内置抓包功能时,请确保路由器有足量的内存,不能因为开启该功能而影响路由器的速度。

某些厂商将抓包功能嵌入了路由器或路由器操作系统。

监控路由器流量时请注意:发往路由器的数据包并不一定都会得到转发。有些数据包在发送的过程中有可能丢包,路由器本身也可能因为内存不足对一部分数据从接收端口原路送回。还有广播包不会得到路由器转发。

3.防火墙流量监控

有两种手段进行监控:

1)监控防火墙内口流量

2)监控防火墙外口流量

如下图

wireshark中怎么看一个视频每秒多少帧 wireshark查看流量大小_wireshark_06

监控防火墙内口,可以查看内网所有用户发起的Internet的流量,其源IP地址均为分配给内网用户的内部IP地址。监控外口,能看到所有经过防火墙放行的访问Internet的流量,这些流量IP地址均为外部IP地址(拜NAT所赐,分配给内网用户的内部IP地址被转换成了外部IP地址)。

4、分路器和Hub

执行流量监控任务时,可能会用到以下两种设备。

**分路器:**可在受监控的链路上用分路器(Test Access Point,TAP)来取代互联网到路由器间的交换机的位置。与交换机作用相同,而且TAP便宜方便,还可以把出错的数据包给Wireshark,交换机遇到错误就会直接将错误包丢弃。

**Hub:**也是为替代监控互联网到路由器之间的路由器而设计的,它时半双工设备。用这个设备,路由器和SP设备之间穿行的每个数据包都能被Wireshark注意获取。但半双工的缺点也很明显,流量速度太慢,会显著加剧流量的延迟。所以一般抓包都不用Hub

0x3 幕后原理

LAN交换机运作方式

1)LAN会不断地学习接入本机的所有设备的MAC地址。

2)收到发往某MAC地址的数据帧时,LAN交换机只会将其从学的此MAC地址的端口外发

3)收到广播帧时,交换机会从出接收端口外的所有端口外发

4)收到多播帧时,若未启用Cisco组织管理协议或Internet组织管理协议监听特性,LAN交换机会从除接收端口以外所有的端口外发;如启用了上面两种特性之一,LAN交换机会通过接连了相应多播接收主机的端口外发多播帧。(简单来说,如果没开特性就全发跟广播一样,开启特性就根据哪些主机开了上面的专门接收多播的端口选择性的发送)

5)收到目的MAC地址未知的数据帧时(这种比较罕见),交换机会从除接收端口意外的所有端口外发。

接下来以下图为例进行说明第二层(L2)网络的运作方式。

wireshark中怎么看一个视频每秒多少帧 wireshark查看流量大小_抓包_07


接入网络的每台设备都会定期发送广播包。ARP请求消息和NetBIOS通告消息都属于广播包。广播包已经发出,就会遍布整个L2网络(如图虚线所示)。上图发广播帧的计算机是1号终端,所有交换机接到这个广播帧后都会记录这个MAC帧和发出MAC帧的计算机端口M1。

当PC2要将一帧发送给PC1时,由于所有交换机都学过了PC1的MAC帧地址。PC2的MAC帧会被转发给SW5,由于SW5已经知道了PC1的地址,则会继续转发给其他知道PC1的MAC地址的交换机,一直到最终的PC1的地址。

因此,将交换机上的某端口配置为镜像端口,先把受监听端口流量重定向到该端口上,再接入安装了Wiershark的笔记本电脑,即可观察到到所有受监控的端口流量。如果直接连接Wireshark笔记本电脑而不做任何配置,只能抓取到流过这个笔记本网卡的单播流量,以及广播和多播流量。

注意:Wireshark再对于不同交换机端口之间交换的同一VLAN流量,Wireshark会从流量接收端口的流入方向以及流量发送端口的流出方向分别收取一遍,所以会抓到重复的数据包。

0x4 在虚拟机上抓包

1、再驻留于单一硬件平台的VM上抓包

wireshark中怎么看一个视频每秒多少帧 wireshark查看流量大小_服务器_08


由图可知,个操作系统(客户操作系统)分别运行了多个应用程序APP。这些操作系统都运行于虚拟化软件之上,而虚拟化软件则运行于硬件平台之上。

现实生活中想要实施抓包有两种选择:

1)在有待监控的主机上安装Wireshark

2)在LAN交换机上开启端口镜像功能,将连接受监控主机的网卡(NIC)的交换端口流量重定向至Wireshark主机。

在驻留于单一硬件的虚拟化平台(云端)进行抓包方法有两种:

1)在有待监视的指定服务器上安装Wireshark,直接在服务器上抓包。

2)在安装了Wireshark的笔记本电脑连接交换机,开启重定向服务,重定向进出口的流量。在上图所示场景中,将笔记本电脑连接至交换机某个空闲端口(8口)相连,开启端口镜像功能,将1、2口流量重定向至8口,不过这种抓包方法容易碰到问题。

第一种抓包方式直接。第二种有可能碰到问题。

如上图,服务器和LAN交换机之间通常会通过两条以上的链路互联。可以把这样的连接方式称为链路聚合(LAG)、端口/网卡结对(teaming)或EtherChannerl(如用Cisco 交换机)。在监控服务器流量时,得检查连接服务器的交换机接口时运行于负载共享(load sharing)模式还是端口冗余(port redundancy)(也叫做故障切换或者主备[Failover]模式)。若运行于端口冗余模式:请先确认连接服务器网卡的活跃交换机端口,再配置镜像,实施抓包。若运行于负载共享模式(一个网络请求,由两个网卡一起完成,但两个网卡的流量却完全不等),则必须采用以下三种流量镜像之一:

1)镜像抓取LAG接口的流量。即镜像抓取两个或两个以上的物理端口,并捆绑而成的虚拟机接口流量。交换机厂商一般会把这样的虚拟机接口称为Port-Group接口或Port-Channel接口。

2)服务器NIC运行于端口冗余模式。请将连接服务器网卡的两个交换机物理端口(如下图所示交换机的1、2两口,选项A)中活跃端口流量镜像至Wireshark主机。

wireshark中怎么看一个视频每秒多少帧 wireshark查看流量大小_wireshark_09


3)在LAN交换机上配置两路端口镜像,将连接服务器双网卡的两个物理机端口流量同时镜像给Wireshark主机的双网卡。

还有一个问题:

在负载共享抓包模式下抓包,若进出服务器流量过高,采用方法1,将会把两块网卡京享值Wireshark主机单网卡。这种流量已经超过了网卡接包的最大流量上限,Wireshark主机不可能抓全所有服务器流量,某数据包势必会被丢弃。因此想要保证抓全所有流量包,请保证Wireshark主机的NIC速率高于受监控服务器网卡速率,或采用3方法(用双网卡抓包)

0x5 在刀片服务器上抓包

刀片服务器是指在标准高度的机架式机箱内可插装多个卡式的服务器单元,是一种实现HAHD(High Availability High Density,高可用高密度)的低成本服务器平台,为特殊应用行业和高密度计算环境专门设计。刀片服务器就像“刀片”一样,每一块“刀片”实际上就是一块系统主板。

wireshark中怎么看一个视频每秒多少帧 wireshark查看流量大小_服务器_10


下图是刀片式服务器机箱的硬件网络拓扑

wireshark中怎么看一个视频每秒多少帧 wireshark查看流量大小_wireshark_11


所示刀片式服务器机箱(刀箱)包含以下部件。

刀片服务器:硬件刀片,通常安装在刀箱正面。插在刀箱卡槽上的小单元。

服务器:虚拟服务器,也叫虚拟机,驻留于硬件刀片服务器之内。也就是每个卡槽上的服务器里都有个虚拟机服务器。

内部LAN交换机:内部LAN交换机安装在刀箱的正面或背面。此类交换机一般都有12 ~ 16个内部(虚拟)端口和4 ~ 8个外部(物理端口)。

外部LAN交换机:安装在通信机架上的物理交换机,不属于刀箱。

监控服务器刀箱(里刀片服务器的流量)会更困难,因为进出刀片服务器的流量是没有办法直接抓取的。

刀箱内部流量监控

要监控进出特定服务器的流量,请在虚拟服务器上安装Wireshark。此时只要确定收发流量的虚拟网卡。检查虚拟机的网络设置即可确认这一点,还可以启动Wireshark,在Wireshark-Capture Interface界面确认接收流量的虚拟机网卡。

刀片服务器与导向内部交换机所连服务器之间(上图1)的流量监控

要监控刀片服务器与导向内部交换机所连服务器之间的流量,请在导向内部交换机上开启镜像功能,将上连刀片服务器的内口(虚拟端口)流量重定向至下连Wireshakr主机的外口(物理端口)。

刀箱内部交换机所连服务器与外部交换机所连设备间(标号2)的流量监控。

在内部或外部LAN交换机开启端口镜像功能,抓取流量。

0x6 开始抓包

0x6.1 操作方法

只要开启软件,进入启动窗口即可看见所有本机网卡及流量状况

wireshark中怎么看一个视频每秒多少帧 wireshark查看流量大小_Wireshark_12


发起单网卡抓包最简单的方式就是双击有流量经过的网卡,还可以选中指定网卡后点击小鲨鱼的图标2。

1、多网卡抓包

先按下Ctrl或Shift键,再用鼠标选择就可以选中多个网卡选项。我随便找了4个本地连接做演示。

wireshark中怎么看一个视频每秒多少帧 wireshark查看流量大小_wireshark_13


选中后点击鲨鱼图标,就可以同时抓取选中的内容的流量了。这里只是举个例子。

多网卡抓包很多情况下会用到。比如,只要Wireshark主机配备了两块物理网卡,即可同时监控到两台不同服务器的流量或一台路由器的两个接口流量,如下图。

wireshark中怎么看一个视频每秒多少帧 wireshark查看流量大小_wireshark_14


2、如何配置实际用来抓包的网卡

1)在菜单中点击捕获->设置选项,会弹出捕获接口窗口。可以在窗口中配置抓包网卡的参数

wireshark中怎么看一个视频每秒多少帧 wireshark查看流量大小_wireshark_15


2)可以在该窗口中的网卡列表区域选择实际用来抓包的网卡,无需配置网卡上的其他参数,直接点击start就可以开始抓包。

3)左下角有个"在所有接口上使用混杂模式的复选框"。一旦勾选,Wireshark主机便会抓取交换机(端口镜像功能)重定向给自己的所有数据包,哪怕数据包的目的不是本机地址;若取消勾选,Wireshark就只会接收自己本机需要的数据报,丢弃重定向接口的数据包。

4)在网卡列表区域正下方,有抓包过滤器输入栏。

3、将抓到的数据存入多个文件

可在网卡列表的“输出”选项卡下配置,点击“输出选项卡”会弹出以下窗口。

wireshark中怎么看一个视频每秒多少帧 wireshark查看流量大小_wireshark_16


Wireshark会将抓到的数据保存到我们自定义的路径下。若勾选了"自动创建新文件,经过…“复选框,则可以设定条件,让Wireshark按照所指定的条件,将抓包数据存入多个文件,文件名格式为文件路径栏内输入的文件名+_xxxx_时间戳。该功能在有待监控的网络链路的流量极高或需要长期抓包的情况下十分有用。在这种情况下可以设定条件,让Wireshark在指定事件之后、抓取到指定规模的数据之后,或者抓取到指定数量的数据包只好,将抓包数据存入一个新文件。

4、设置抓包选项参数

点击选项,在左上角1区域内设置显示抓包后要显示的选项。右上角2区域显示解析选项。

wireshark中怎么看一个视频每秒多少帧 wireshark查看流量大小_抓包_17


5、网卡管理

wireshark中怎么看一个视频每秒多少帧 wireshark查看流量大小_抓包_18


弹出管理接口窗口,在该窗口下可以看到所有网卡信息,包括未在启动窗口的网卡列表区域出现的网卡。

wireshark中怎么看一个视频每秒多少帧 wireshark查看流量大小_Wireshark_19


Wireshark还能时时读取应用程序抓取到数据包。

6、远程机器上抓包

1)在远程机器上安装pcap驱动程序,也可以在远程机器上完整安装Wireshark软件包。

2)在Wireshark启动窗口选择“捕获->设置->管理接口”,在弹出的另一个管理接口窗口中,点击远程接口选项卡,在该选项卡中点击左下角”+“按钮,会弹出一个远程接口按钮

wireshark中怎么看一个视频每秒多少帧 wireshark查看流量大小_Wireshark_20


3)在该窗口添加参数。

主机IP地址或主机名

输入端口2002,不填则默认为2002

可以选择不验证,验证就是添加登陆的用户名密码

4)登陆有待采集数据的远程机器

5)回到接口管理界面点击OK按钮,这样远程机器的网卡就会出现在本地网卡列表中,操作与本机一样。

7、开始抓包——在Linux/UNIX机器上抓包

Linux和UNIX系统自带tcpdump工具。我们需要记住以下常用指令

;从指定接口抓包:
	语法: tcpdump -i <接口名>
	例子: tcpdump -i eth0
;将从指定接口抓到数据存入指定文件
	语法: tcpdump -w <文件名> -i <接口名>
	例子: tcpdump -w test001 -i eth1
;读取抓到的数据包文件
	语法: tcpdump -r <文件名>
	例子: tcpdump -r test001

8、从远程通讯设备采集数据
该功能常规理念是,某些厂商的网络设备具备本机抓包功能,抓包完毕之后,还支持将抓包文件导出至外部主机。
按Cisco的说法,该功能名为嵌入式数据包捕获(EPC)功能,配置方法可在思科官网进行搜索。

0x6.2 Wireshark抓包原理

将Wireshark主机的网卡接入有线或无限网络开始抓包时,介于有线(或无线)网卡和抓包引擎之间的软件驱动程序便会参与其中。在Windows和UNIX平台上,这一软件驱动程序分别叫作WinPcap和LibCap驱动程序;对于无线网卡,行使抓包任务的软件驱动程序名为AirPacP驱动程序。
若需要精准获取时间还需要利用NTP协议从NTP服务器上获取。