Wireshark(以前叫Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是抓取网络封包,并尽可能地显示出详细的网络封包信息。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。
基础界面介绍
Wireshark软件界面有以下几个功能区域:
· 菜单栏:对Wireshark软件进行各种配置操作,例如:保存捕获的报文。
· 工具栏:快速调用一些常用的操作,例如:开始捕获、停止捕获、设置捕获接口等。
· 过滤栏:在过滤栏设置过滤条件,软件界面会根据过滤条件显示需要查看的报文。
· 报文捕获区:查看捕获的报文。
· 报文封装区:查看报文的封装协议。
· 报文内容区:查看报文的具体内容
启动抓包软件以后,选择好相应的网卡,双击需要抓包的网卡, 如以太网(服
务器一般有多网卡,请确认需要抓包的网卡后再进行抓包,一般查看下面是否有波浪线
即可判断该网卡有无流量产生。)
点击抓包接口之后,就可以看到实时接收的报文。Wireshark会自动捕捉系统发送和接收的每一个报文。工具栏:控制监控的行为,比如开始抓包,停止抓包,重新开始抓包,以及在包之间跳转等等。
报文分析
相关报文就可以分析了,可以使用一些命令分类出相应的报文 ,举例:
基于源IP地址过滤: ip.src_host==x.x.x.x
基于目标IP地址过滤: ip.dst_host==x.x.x.x
基于源tcp端口过滤: tcp.srcport==80、tcp.dstport == 80,||代表“或”语句
基于协议,如arp、tcp、udp、http、ospf、rip等均可直接输入协议名进行过滤
几种常见的过滤规则(含义:C语言/英文),使用时两种语法均可使用:
等于:== / eq ; 不等于:!= / ne
小: < / lt ;大于:> / gt
小于等于:<= / le ; 大于等于:>= / ge
逻辑与(且):&& / and
逻辑或:|| / or
逻辑非:!/not
捕获器过滤
以上是针对抓取报文后进行分析过滤的方法。
对于需要长时间抓包或者短时间内会产生大量流量的场景,单独一个数据包的容量会非常大,造成后期传输以及打开等方面使用不方便,此时需要用到分片抓包功能,使得数据包按需求进行分段,步骤如下:
1、 启动 wireshark ,点击菜单栏上的“捕获( Capture)”,点击第一个菜单选项( Option)进入选项页。
2、在打开的选项卡中点击输入选项,选择需要抓包的网卡 ,同时可在过滤器设置过滤条件(直接抓取过滤)。比如语句:(host 12.1.1.1 or host 12.1.1.2 || host 12.1.1.1) and port 80 or port 21
此处过滤器条件与前面直接抓取后报文过滤器的字段表示格式有所不同,可参考自带索引:
在“输出”选项,设置保存位置和文件名,设置文件分片条件,可以基于文件大小(如抓取报文达到100M后分割,开始建立下一个报文,依次类推)、时长等:
在“选项”处,设置捕获停止条件,可以基于分组个数或时长。之后点击开始即可:
Wireshark是目前业界网络(系统)运维、应用开发等领域比较常用和通用一款报文获取和分析软件,对于网络分析和排障非常实用。要想深入研究使用该工具,需要对整个TCP/IP协议和业务应用协议非常了解。