wireshark快速指南
学过网络的同学都知道,互联网信息的传递都是通过网络数据包来完成的。那么抓取网络数据包对于我们学习网络知识,查找网络问题甚至逆向工程都是至关重要的。 现在本文以Linux 下版本号为1.10.14的wireshark向大家介绍。wireshark是一款开源的,支持多种操作系统,多种网络协议的抓包工具。它简单容易上手,并且说明文档齐全(官网有详尽的guide book)。下面跟其他常见的抓包工具进行对比:注意:只要将手机网络连接到安装了wireshark的主机上(比如开热点wifi),就可以抓到手机上的数据包,而不一定要在手机上安装抓包工具主要介绍两个页面,一个是起始页,一个是包列表页。起始页展示了接口列表(网卡,蓝牙,USB等数据端口),捕获选项以及一些帮助信息。点击开始捕获包后就会进入包列表页,包列表页展示捕获到的包,选中包对应的协议信息及其原始十六进制数据起始页展示了可供抓包的接口列表,选中想要捕获的接口开始抓包。捕获选项里可以设置捕获过滤规则以及捕获停止条件。进行捕获后,会出现三个栏目:数据包列表栏目,包协议信息栏目,包字节信息栏目。我们可以通过数据包列表找到想要的某个数据包,鼠标选中后,在包协议信息栏目分析该包的协议信息,如果想要知道某个字节的含义则在包字节信息栏目分析。注意在数据包列表栏目上方有个Filter 输入框,这里我们可以输入显示过滤表达式,过滤掉数据包列表中一些不需要展示的数据包。3.1.1 从文件导入数据包已经被抓取并导出到文件,此时我们只需用wireshark导入此捕获文件即可获取之前捕获的数据包。文件的格式有很多种,可以导入tcpdump导出的捕获文件。有趣的是,也可以导入png,jpg等格式的图片以及mp4等格式的视频文件,导入后可以看到图片和视频也是一个个数据包组成的,图片渐近式展示以及视频不需完全加载就可播放等特性估计跟这有关。3.1.1 实时抓取选择特定接口,点击start按钮后,即开始实时抓取。一般地,接口的数据包数量庞大并且各个包之间的关联性不强。我们想要得到特定的数据包就必须过滤无关的数据包,从而快速的进行分析。wireshark过滤方式有两种,第一种是捕获过滤,这种过滤是捕获阶段进行,它只捕获未被过滤的数据包,这样可以减少抓取数据包的数量。第二种是显示过滤,这种过滤在分析阶段进行,它在捕获的数据包基础上进行过滤。3.2.1 捕获过滤过滤语法一般格式: [not] primitive [and|or [not] primitive ...]primitive 一般由type,dir,proto这三类限定符组成3.2.2 显示过滤过滤语法一般格式:(过滤字段 比较操作符 value) 组合表达式 (过滤字段 比较操作符 value)...3.3.1 追踪数据流将数据包进行关联,可通过某个数据包即可关联到该数据包传输链的所有数据包,比如可以通过一个tcp数据包可关联到这个tcp会话的所有数据包。操作:鼠标点击数据包列表栏的某个数据包->右键->Follow TCP Stream(Follow UDP Stream,Follow SSL Stream)3.3.2 端点端点在不同的协议层有不同的含义,在网络层,特定IPv4,IPv6地址为一个端点,在数据运输层,特定TCP端口,UDP端口为一个端点。端点这个页面为我们展示每个端点的数据包发送和接收情况。操作:Statistics->Endpoints3.3.3 对话对话页面展示两个端点之间的包传输情况。端点在不同协议层有不同含义,对话也一样。在网络层,对话是两个IP之间进行,在数据传输层,对话在两个端口之间进行。操作:Statistics->Conversations3.3.4 流量图流量图使用图形化展示了数据包的抓取情况。操作:Statistics->IO Graphs3.3.5 协议分层协议分层页面将抓取到数据包按网络协议进行了分类,我们可以看到每个网络层抓取包的情况。操作:Statistics->Protocol Hierarchy Statistics3.3.6 专家信息wireshark 帮我们分析了数据包情况,通过专家信息页面提示网络中出现的问题,它将数据包分为4个等级(Error,Warnings,Notes,Chats),从左至右问题严重程度依次减少,Chats是正常的数据包。Error表示可能导致问题的数据包。操作:Analyze->Expert Infos一般地,如果不设置静态MAC-->IP对应表,机器都会发送arp请求来获得其他机器的mac地址。如此,我们只需要在显示过滤器输入 arp即可获得apr数据包。捕获信息见下图: wireshark官方文档

wireshark抓到的包怎么解析
启动wireshark后,选择工具栏中的快捷键(红色标记的按钮)即可Start a new live capture。主界面上也有一个interface list(如下图红色标记1),列出了系统中安装的网卡,选择其中一个可以接收数据的的网卡也可以开始抓包。 在启动时候也许会遇到这样的问题:弹出一个对话框说 NPF driver 没有启动,无法抓包。在win7或Vista下找到C: systemsystem32下的cmd.exe 以管理员身份运行,然后输入 net start npf,启动NPf服务。 重新启动wireshark就可以抓包了。 抓包之前也可以做一些设置,如上红色图标记2,点击后进入设置对话框,具体设置如下: Interface:指定在哪个接口(网卡)上抓包(系统会自动选择一块网卡)。 Limit each packet:限制每个包的大小,缺省情况不限制。 Capture packets in promiscuous mode:是否打开混杂模式。如果打开,抓 取所有的数据包。一般情况下只需要监听本机收到或者发出的包,因此应该关闭这个选项。 Filter:过滤器。只抓取满足过滤规则的包。 File:可输入文件名称将抓到的包写到指定的文件中。 Use ring buffer: 是否使用循环缓冲。缺省情况下不使用,即一直抓包。循环缓冲只有在写文件的时候才有效。如果使用了循环缓冲,还需要设置文件的数目,文件多大时回卷。 Update list of packets in real time:如果复选框被选中,可以使每个数据包在被截获时就实时显示出来,而不是在嗅探过程结束之后才显示所有截获的数据包。 单击逗OK地按钮开始抓包,系统显示出接收的不同数据包的统计信息,单击逗Stop地按钮停止抓包后,所抓包的分析结果显示在面板中,如下图所示:为了使抓取的包更有针对性,在抓包之前,开启了的视频聊天,因为视频所使用的是UDP协议,所以抓取的包大部分是采用UDP协议的包。 3、对抓包结果的说明 wireshark的抓包结果整个窗口被分成三部分:最上面为数据包列表,用来显示截获的每个数据包的总结性信息;中间为协议树,用来显示选定的数据包所属的协议信息;最下边是以十六进制形式表示的数据包内容,用来显示数据包在物理层上传输时的最终形式。使用wireshark可以很方便地对截获的数据包进行分析,包括该数据包的源地址、目的地址、所属协议等。上图的数据包列表中,第一列是编号(如第1个包),第二列是截取时间(0.000000),第三列source是源地址(115.155.39.93),第四列destination是目的地址(115.155.39.112),第五列protocol是这个包使用的协议(这里是UDP协议),第六列info是一些其它的信息,包括源端口号和目的端口号(源端口:58459,目的端口:54062)。中间的是协议树,如下图: 通过此协议树可以得到被截获数据包的更多信息,如主机的MAC地址(Ethernet II)、IP地址(Internet protocol)、UDP端口号(user datagram protocol)以及UDP协议的具体内容(data)。最下面是以十六进制显示的数据包的具体内容,如图: 这是被截获的数据包在物理媒体上传输时的最终形式,当在协议树中选中某行时,与其对应的十六进制代码同样会被选中,这样就可以很方便的对各种协议的数据包进行分析。 4、验证网络字节序 网络上的数据流是字节流,对于一个多字节数值(比如十进制1014 = 0x03 f6),在进行网络传输的时候,先传递哪个字节,即先传递高位逗03地还是先传递低位逗f6地。 也就是说,当接收端收到第一个字节的时候,它是将这个字节作为高位还是低位来处理。 下面通过截图具体说明:最下面是物理媒体上传输的字节流的最终形式,都是16进制表示,发送时按顺序先发送00 23 54 c3 …00 03 f6 …接收时也按此顺序接收字节。 选中total length:1014, 它的十六进制表示是0x03f6, 从下面的蓝色选中区域可以看到,03在前面,f6在后面,即高字节数据在低地址,低字节数据在高地址(图中地址从上到下从左到右依次递增),所以可知,网络字节序采用的是大端模式。

wireshark怎么抓包分析网络故障实战
【WireShark概览】 1、Wireshark 是网络报文分析工具。网络报文分析工具的主要作用是尝试捕获网络报文, 并尝试显示报文尽可能详细的内容。过去的此类工具要么太贵,要么是非公开的。 直到Wireshark(Ethereal)出现以后,这种情况才得以改变。Wireshark可以算得上是今天能使用的最好的开源网络分析软件。2、WireShark简史:1997年,Gerald Combs 需要一个工具追踪网络问题,并且想学习网络知识。所以他开始开发Ethereal (Wireshark项目以前的名称) 以解决自己的需求。1998年,Ethreal0.2.0版诞生了。此后不久,越来越多的人发现了它的潜力,并为其提供了底层分析。2006年Ethreal改名为Wireshark。2008年,在经过了十年的发展后,Wireshark发布了1.0版本。3、WireShark的主要作用,就是可以抓取各种端口的报文,包括有线网口、无线网口、USB口、LoopBack口等等,从而就可以很方便地进行协议学习、网络分析、系统排错等后续任务。4、不同平台下的WireShark:目前WireShark支持几乎所有主流报文文件,包括pcap,cap ,pkt,enc等等。但是不同平台下的WireShark却有功能上的不同。总体来说,Linux版本WireShark的功能和特性比Windows版本的要丰富和强大。例如,Linux版本的WireShark可以直接抓取USB接口报文,而Windows版本就不行。Figure 1,Linux下的WireSharkFigure 2,Windows下WireSharkFigure 3,各平台下的WireShark所支持的协议各平台下的WireShark支持的协议如上图所示。从图中可以看到Linux下的版本功能最强大,由于平台本身特性,可以使WireShark几乎支持所有协议。但由于我们平时工作中主要抓取以太网报文,且绝大部分的操作系统都是Windows,所以本文还是以Windows平台下的WireShark为例来进行说明。【如何正确使用WireShark抓取报文】1、WireShark组网拓扑。为了抓到HostA与HostB之间的报文,下面介绍几种WireShark组网。i.在线抓取:如果WireShark本身就是组网中的一部分,那么,很简单,直接抓取报文就行了。ii. 串联抓取:串联组网是在报文链路中间串联一个设备,利用这个中间设备来抓取报文。这个中间设备可以是一个HUB,利用HUB会对域内报文进行广播的特性,接在HUB上的WireShark也能收到报文。若是WireShark有双网卡,正确设置网络转发,直接串接在链路上。也可以利用Tap分路器对来去的报文进行分路,把报文引到WireShark上。串联组网的好处是报文都必须经过中间设备,所有包都能抓到。缺点是除非原本就已经规划好,不然要把报文链路断开,插入一个中间设备,会中断流量,所以一般用于学习研究,不适用于实际业务网以及工业现场以太网。iii. 并联抓取:并联组网是将现有流量通过现网设备本身的特性将流量引出来。若是网络本身通过HUB组网的,那么将WireShark连上HUB就可以。若是交换机组网,那直接连上也能抓取广播报文。当然,最常用的还是利用交换机的镜像功能来抓包。并联组网的优点是不用破坏现有组网,适合有业务的在线网络以及工业现场以太网。缺点是HUB组网已经不常见,而交换机组网的设备开启镜像后,对性能有非常大的影响。2、 WireShark的安装。WireShark是免费开源软件,在网上可以很轻松获取到。Windows版的WireShark分为32位而64位两个版本,根据系统的情况来决定安装哪一个版本,虽然64位系统装32位软件也能使用,但装相应匹配的版本,兼容性及性能都会好一些。在Windows下,WireShark的底层抓包工具是Winpcap,一般来说WireShark安装包内本身就包含了对应可用版本的Winpcap,在安装的时候注意钩选安装就可以。安装过程很简单,不再赘述。3、使用WireShark抓取网络报文。Step1. 选择需要抓取的接口,点选Start就开始抓包。4、使用WireShark抓取MPLS报文。对于mpls报文,wireshark可以直接抓取带MPLS标签的报文。5、使用WireShark抓取带Vlan Tag的报文。早期网卡的驱动不会对VLAN TAG进行处理,而是直接送给上层处理,在这种环境下,WireShark可以正常抓到带VLAN TAG的报文。而Intel,broadcom,marvell的网卡则会对报文进行处理,去掉TAG后再送到上层处理,所以WireShark在这种情况下通常抓不到VLAN TAG。这时我们需要针对这些网卡做一些设置,WireShark才能够抓取带VLAN TAG的报文。1). 更新网卡的最新驱动。2). 按照以下说明修改注册表:a) Intel:HKEY_LOCAL_MACHINESYSTEM ControlSet001ControlClass{4D36E972-E325-11CE-BFC1-08002BE10318} 0xx(where xx is the instance of the network adapter that you need to see tags on. )PCI或者PCI-X网卡增加dword:MonitorModeEnabled,通常设置为1即可 0 - disabled (Do not store bad packets, Do not store CRCs, Strip 802.1Q vlan tags) 1 - enabled (Store bad packets. Store CRCs. Do not strip 802.1Q vlan tags) PCI-Express网卡增加dword:MonitorMode,通常设置为1即可 0 - disabled (Do not store bad packets, Do not store CRCs, Strip 802.1Q vlan tags) 1 - enabled (Store bad packets. Store CRCs. Do not strip 802.1Q vlan btag) 2 - enabled strip vlan (Store bad packets. Store CRCs. Strip 802.1Q vlan tag as normal);b) Broadcom:在HKEY_LOCAL_MACHINESYSTEMCurrentControlSet下搜索,找到"TxCoalescingTicks"并确认这是唯一的,增加一个新的字符串值"PreserveVlanInfoInRxPacket",赋值1。c) Marvell Yukon 88E8055 PCI-E 千兆网卡:"HKLMSYSTEM CurrentControlSetControlClass{4D36E972-E325-11CE-BFC1-08002bE10318} 00"(where 000 is the number of the folder for the Marvel ethernet controller)增加DWORD:SkDisableVlanStrip:1;3). 以Intel网卡为例,对网卡进行配置。选择Intel网卡的本地连接,右键属性点击“配置”按钮。在VLAN选项卡中,加入任意一个VLAN,激活接口的VLAN TAG上送功能。此时可以把“本地连接”接口看成是一个Trunk接口。配置完VLAN后,如果发现系统禁用了“本地连接”接口,则只要启用它,会看到网络连接中会出现一个新的子接口“本地连接2”。在WireShark上查看抓取“本地连接”接口的报文。可以看到已经可以抓到有VLAN TAG的报文了。由于此时的子接口都是有VLAN属性的,所以无法当成正常的网卡来用。如果想要在抓VLAN包的同时,还能够与网络正常通信,只要再新建一个未标记的VLAN就行。 这时,会生成一个对应的子接口“本地连接3”,在这个接口上正确配置网络参数,就可以正常通信了。
你可以在 wireshark 软件中设置各种过滤规则,(filter)来捕获各种有用的数据包。然后保存到一个文件中,最后对那个文件中的内容进行数据包分析。

如何分析wireshark抓到的包
首先我们打开wireshark软件的主界面,在主界面上选择网卡,然后点击start。wireshark即进入抓包分析过程。在本篇我们选择以太网,进行抓包。接下来再界面我们可以看到wireshark抓到的实时数据包。我们对数据包的各个字段进行解释。1.No:代表数据包标号。2.Time:在软件启动的多长时间内抓到。3.Source:来源ip。4.Destination: 目的ip。5.Protocol:协议。6.Length:数据包长度。7.info:数据包信息。接下来我们点击解析后的某一条数据可以查看数据包的详细信息。在抓包过程中,我们可以点击图标启动或者停止。来启动或者停止抓取数据包。接下来我们将简单介绍Filter处,对来源Ip以及目的Ip的过滤表达式的写法。首先我们在Filter处填写ip.addr eq 192.168.2.101。表示获取来源ip以及目的ip都是192.168.2.101的数据包。(此处解释 eq 换成==同样的效果)在Filter处填写:ip.src == 192.168.2.101。表示获取来源地址为192.168.2.101的数据包。在Filter处填写:ip.dst == 119.167.140.103。表示获取目的地址为119.167.140.103的数据包。在Filter处填写:ip.dst == 119.167.140.103 or ip.dst == 192.168.2.45。表示获取目的地址为119.167.140.103或者192.168.2.45的数据包。(此方法举例主要说明or的用法。在or前后可以跟不同的表达式。)在Filter处填写:ip.dst == 119.167.140.103 and ip.src == 192.168.2.101。表示获取目的地址为119.167.140.103且来源地址为192.168.2.101的数据包。(此方法举例主要说明and 的用法)

如何使用wireshark分析数据包格式
方法/步骤 首先我们打开wireshark软件的主界面,在主界面上选择网卡,然后点击start。wireshark即进入抓包分析过程。在本篇我们选择以太网,进行抓包。接下来再界面我们可以看到wireshark抓到的实时数据包。我们对数据包的各个字段进行解释。1.No:代表数据包标号。2.Time:在软件启动的多长时间内抓到。3.Source:来源ip。4.Destination: 目的ip。5.Protocol:协议。6.Length:数据包长度。7.info:数据包信息。接下来我们点击解析后的某一条数据可以查看数据包的详细信息。在抓包过程中,我们可以点击图标启动或者停止。来启动或者停止抓取数据包。接下来我们将简单介绍Filter处,对来源Ip以及目的Ip的过滤表达式的写法。首先我们在Filter处填写ip.addr eq 192.168.2.101。表示获取来源ip以及目的ip都是192.168.2.101的数据包。(此处解释 eq 换成==同样的效果)在Filter处填写:ip.src == 192.168.2.101。表示获取来源地址为192.168.2.101的数据包。在Filter处填写:ip.dst == 119.167.140.103。表示获取目的地址为119.167.140.103的数据包。在Filter处填写:ip.dst == 119.167.140.103 or ip.dst == 192.168.2.45。表示获取目的地址为119.167.140.103或者192.168.2.45的数据包。(此方法举例主要说明or的用法。在or前后可以跟不同的表达式。) 在Filter处填写:ip.dst == 119.167.140.103 and ip.src == 192.168.2.101。表示获取目的地址为119.167.140.103且来源地址为192.168.2.101的数据包。(此方法举例主要说明and 的用法)

本文由 在线网速测试 整理编辑,转载请注明出处。