Wireshark 入门详解

标签: Linux ethereal Wireshark | 发表时间:2014-07-16 08:32 | 作者:默北
出处:http://www.ttlsa.com

目录:

一、 background 二、 how it works 三、包抓取方式 四、 filter in Wireshark
  •   Capture filter例子
  • 抓取所有本主机发送的报文,本机为2.2.2.2
  • 抓取与主机1.1.1.1.的1033端口的所有通信
  • 抓取所有的tcp RST报文
五、 Wireshark的安装 六、 Wireshark的实用功能
  • l Follow tcp stream
  • l Statistics
  • l Flow graph
  • l Tcp stream graph
七、 Wireshark的扩展
  •  ip地理信息扩展
八、让Wireshark支持自定义协议
  •  Wireshark中的协议解析器模块
  • l Lua编写协议解析插件
  1.  Lua为何物
  2. Wireshark与lua的关系
  3. 使用lua编写自定义协议解析器
九、附录

一、background

Wireshark是一款支持多平台的包抓取分析开源软件,前身是ethereal。 Wireshark基于libpcap on unix-like,winpcap on windows。Tcpdump同样基于libpcap实现。Libpcap来自于BPF,下图是BPF的一个结构图: wireshark-1

二、how it works

wireshark-2

三、How packets capture

当前Wireshark支持以下三种包抓取方式: 1. 网络适配器上实时抓取; 2. 远程主机抓取; 3. pipe方式抓取; 这里主要介绍下远程主机的抓取方式,此功能依赖于libpcap/winpcap提供的rpcapd.程序: wireshark-3 首先服务器端建立侦听 wireshark-4 然后客户端连接到服务器端 wireshark-5 wireshark-6 现在能看见远程主机网卡上的流量了 wireshark-7 Packet由libpcap抓取之后通过管道传送到wireshark,由此远程抓包只是流量重定向而已。

四、filter in Wireshark

Wireshark中提供了两种filter: 1. Capture filter; 2. Display filter; 其中capture filter来自于libpcap,语法如下   [direction] [[type] value] [proto] Direction: src dst Type: host net port Proto: ether tcp udp arp ... Capture filter在libpcap实现,只有满足过滤器的包之后才会送往应用程序。 l  Capture filter例子
  • 抓取所有本主机发送的报文,本机为2.2.2.2
src host 2.2.2.2
  • 抓取与主机1.1.1.1.的1033端口的所有通信
host 1.1.1.1 && port 1033
  • 抓取所有的tcp RST报文
tcp[13]&4==4 || tcp[13]&4==14       #tcp的flag在偏移13字节的地方,占据1字节 Display filter来自于Wireshark,用于对捕获包的显示过滤。Wireshark利用此filter还是实现了coloring rules,statistics等功能。

五、Wireshark install

Wireshark依赖于libpcap/winpcap,于是在应用程序安装之前,首先安装此库。

六、Wireshark utility

  •  Follow tcp stream
Wireshark将通信抽象成流的概念,按照Wireshark的解释,流是“The stream content is displayed in the same sequence as it appeared on the network”,就是一个序列号下来的通信,主要针对tcp通信 wireshark-8 红方表示发送方,蓝方表示回送方
  • Statistics
可以按照协议,按照endpoint,按照packet length进行统计显示 wireshark-9
  •  Flow graph
将网络通信以时序图的方式展现出来 wireshark-10
  •  Tcp stream graph

七、Wireshark extension

  •   ip地理信息扩展
maxmind是一个在线ip地理信息提供商GeoIP,http://www.maxmind.com,它提供了一个离线数据库文件,Wireshark加载此文件,可以在显示捕获包的同时显示该包中的IP的地理信息; wireshark-11 wireshark-12

八、让Wireshark支持自定义协议

  •  Wireshark中的协议解析器模块
源码下的epan目录
  • Lua编写协议解析插件
Init.lua文件 Lua为何物 wireshark-13 Wireshark与lua的关系
  1.  wireshark内置了lua解释器
  2.  Lua作为wireshark的扩展通道,为wireshark提供支持自定义的协议解析的能力
a) 侦听时分析 b) 显示时分析 3. Wireshark通过init.lua进入其他的lua程序 使用lua编写自定义协议解析器 1. 步骤 a)   定义协议 b)  定义解析函数 c)   在全局解析函数table中加入解析规则

九、附录

最初的libpcap论文:http://www.tcpdump.org/papers/bpf-usenix93.pdf Capture filter语法:http://www.Wireshark.org/docs/wsug_html_chunked/ChCapCaptureFilterSection.html Wireshark提供了display filter功能,该语法介绍如下:http://www.Wireshark.org/docs/wsug_html_chunked/ChWorkBuildDisplayFilterSection.html Wiki上对于GeoIP的说明:http://wiki.Wireshark.org/HowToUseGeoIP GeoIP的下载页面:http://dev.maxmind.com/geoip/legacy/downloadable/ 本文由网友李文博提供。希望大家加入我们,一起成长。

相关 [wireshark] 推荐:

wireshark过滤规则

- - CSDN博客推荐文章
WireShark 过滤 语法  . 过 滤 IP,如来源IP或者目标IP等于某个IP. ip.addr eq 192.168.1.107 // 都能显示来源IP和目标IP. tcp.port eq 80 // 不管端口是来源的还是目标的都显示. tcp.dstport == 80 // 只显tcp协议的目标端口80.

Wireshark 入门详解

- - 运维生存时间
一、 background 二、 how it works 三、包抓取方式 四、 filter in Wireshark.   Capture filter例子. 抓取所有本主机发送的报文,本机为2.2.2.2. 抓取与主机1.1.1.1.的1033端口的所有通信. 五、 Wireshark的安装 六、 Wireshark的实用功能.

wireshark使用教程

- - 互联网 - ITeye博客
 wireshark是一款抓包软件,比较易用,在平常可以利用它抓包,分析协议或者监控网络,是一个比较好的工具,因为最近在研究这个,所以就写一下教程,方便大家学习.        这里先说Wireshark的启动界面和抓包界面.        启动界面:. 这个是网卡的显示,因为我有虚拟机所以会显示虚拟网卡,我们现在抓的是真实网卡上的包所以在以太网卡右边点击start 开始抓包.

Wireshark 抓远程主机的包

- - 依云's Blog
本文来自 依云's Blog,转载请注明. 通常,我在本地用图形界面的 Wireshark 来抓包及解析,而对于远程服务器,因为没有图形界面,只好使用 tcpdump 抓包到文件然后复制到本地拿 Wireshark 看了,这样就不能实时查看抓到的包了. 当然 tcpdump 也可以实时输出,但是信息太少、难以阅读,功能也过于简单,比如我要跟踪流啊、不同的流用不同的颜色高亮啊、添加注释啊、时序分析啊,tcpdump 完全没办法做到.

Wireshark 过滤器语法 - 粪球

- - 博客园_首页
 wireshark有两种过滤器:.  捕捉过滤器(CaptureFilters):用于决定将什么样的信息记录在捕捉结果中. 显示过滤器(DisplayFilters):用于在捕捉结果中进行详细查找. 捕捉过滤器 (此过滤器不需要比较运算符,查询关键字请全部小写). 捕捉过滤器是数据经过的第一层过滤器,它用于控制捕捉数据的数量,以避免产生过大的日志文件.

使用 Wireshark 调试 HTTP/2 流量

- - JerryQu 的小站
我们知道,HTTP/2 引入了二进制分帧层(Binary Framing),将每个请求和响应分割成为更小的帧,并对它们进行了二进制编码. 与此同时,HTTP/2 沿用了之前 HTTP 版本中的绝大部分语义,上层应用基本上感知不到 HTTP/2 的存在,这一点可以通过浏览器的网络调试工具得到验证. 以下是使用 Chrome 访问 HTTP/2 网站的截图,网络面板中显示的内容与 HTTP/1 网站相比,只有一些细微的区别(头部字段都是小写,多了一些冒号开头的头部等).

用 Wireshark 分析 TCP 吞吐瓶颈

- - 卡瓦邦噶!
Debug 网络质量的时候,我们一般会关注两个因素:延迟和吞吐量(带宽). 延迟比较好验证,Ping 一下或者 mtr 一下就能看出来. 这篇文章分享一个 debug 吞吐量的办法. 看重吞吐量的场景一般是所谓的长肥管道(Long Fat Networks, LFN, rfc7323). 吞吐量没有达到网络的上限,主要可能受 3 个方面的影响:.

Linux下网络抓包命令tcpdump详解(在wireshark中看包)

- - 开心平淡对待每一天。热爱生活
tcpdump采用命令行方式,它的命令格式为:.       tcpdump[ -adeflnNOpqStvx ] [ -c 数量 ] [ -F 文件名 ].           [ -i 网络接口 ] [ -r 文件名] [ -s snaplen ].           [ -T 类型 ] [ -w 文件名 ] [表达式 ]   .

转载:Wireshark基本介绍和学习TCP三次握手

- - 互联网 - ITeye博客
Wireshark基本介绍和学习TCP三次握手. 用 Fiddler 来调试HTTP,HTTPS. 这篇文章介绍另一个好用的抓包工具wireshark, 用来获取网络数据封包,包括http,TCP,UDP,等网络协议包. 记得大学的时候就学习过TCP的三次握手协议,那时候只是知道,虽然在书上看过很多TCP和UDP的资料,但是从来没有真正见过这些数据包, 老是感觉在云上飘一样,学得不踏实.

Wireshark抓包工具--TCP数据包seq ack等解读

- - CSDN博客互联网推荐文章
1、Wireshark的数据包详情窗口,如果是用中括号[]括起来的,表示注释,在数据包中不占字节. 2、在二进制窗口中,如“DD 3D”,表示两个字节,一个字节8位. 3、TCP数据包中,seq表示这个包的序号,注意,这个序号不是按1递增的,而是按tcp包内数据字节长度加上,如包内数据是21字节,而当前IP1发到IP2的包的seq是10的话,那下个IP1发到IP2的包的seq就是10+21=31.