一站式学习Wireshark第九章

掌握显示过滤器对于网络分析者来说是一项必备的技能。这是一项大海捞针的技巧。学会构建,编辑,保存关键的显示过滤器能够节省数小时的时间。

与捕捉过滤器使用的BPF语法不同,显示过滤器使用的是Wireshark特定的格式。除了某些特例之外,Wireshark显示过滤器和捕捉过滤器有很大的区别。

更多信息

最简单的过滤器语法:

最简单的显示过滤器可基于协议,应用,域名,或字符,对大小写敏感。绝大多数简单的显示过滤器由小写字母组成。

协议过滤器:

  • arp:显示所有包括ARP请求和回复在内的所有ARP数据流。
  • ip:显示内含IPv4头在内的(如ICMP目的地址不可达报文,在ICMP报文头之后返回到来方向的IPv4头)IP数据流。
  • ipv6:显示所有IPv6数据流,包括内含IPv6报文头的IPv4报文,如6to4,Teredo,以及ISATAP数据流。
  • tcp:显示所有基于TCP的数据流。

应用过滤器:

  • bootp:显示所有DHCP数据流(基于BOOTP)。
  • dns:显示包括TCP区域传输以及基于标准UDP的DNS请求和回复在内的所有DNS数据流。
  • tftp:显示所有TFTP(Trivial File Transfer Protocol)数据流。
  • http:显示所有HTTP命令,回复以及数据传输报文,但不显示TCP握手报文,TCP ACK报文以及TCP结束报文。
  • icmp:显示所有ICMP报文。

域过滤器:

  • boot.option.hostname:显示所有包含主机名的DHCP数据流(DHCP基于BOOTP)。
  • http:host:显示所有包含HTTP主机名字段的所有HTTP报文。此报文是客户端向网络服务器发送请求时发出的。
  • ftp.request.command:显示所有包含命令的FTP数据流,比如USER,PASS,或RETR命令。

字符过滤器:

  • tcp.analysis.flags:显示所有包含TCP分析标识的所有报文,包括报文丢失,重传,或零窗口标识。
  • tcp.analysis,zero_window:显示含有表明发送方的接收缓存用完标识的报文。

了解字段名:

很多显示过滤器都是基于字段名(例如http.host)。要了解字段名,在Packet list面板选中字段查看Status条,如下图所示。


本例中,我们在Packet Display面板中选中第10帧,然后在Packet Details面板中展开HTTP报文头。之后在报文的HTTP段点击Request Method行,状态条表明这一字段称为http.request.method。

我们在显示过滤器区域输入http.request.method以显示所有包含这一字段的报文。如下图所示,注意到Status条表明此抓包文件包含2011个报文只有101个报文符合过滤条件。


这是一个很好用的过滤器,以确定HTTP客户端请求了哪些内容。网络服务器不发送HTTP request method,它们发送HTTP响应代码。

使用自动完成功能:

当你在过滤器区域输入http.request.method的时候,Wireshark打开一个窗口让你遍历过滤器选项。当你输入http.(包括点号),你会看到所有可能的以此为开头的显示过滤条件列表。继续输入http.request. ,会看到以这一短语为开头的过滤条件,如下图所示:


可以使用这一自动完成功能查看所有可用的过滤条件。例如,输入tcp. ,Wireshark会列出所有可用的TCP过滤条件。如果输入tcp.analysis. ,Wireshark会列出所有处理TCP问题与性能的TCP analysis过滤条件,如下图:

显示过滤器比较运算符:

通过扩展过滤条件可查找某一域值,Wireshark针对此功能支持数字比较运算符。
1. ==或eq
例如:ip.src == 10.2.2.2
显示所有源地址为10.2.2.2的IPv4数据流
2. !=或ne
例如:tcp.srcport != 80
显示源端口除了80以外的所有TCP数据流
3. >或gt
例如:frame.time_relative > 1
显示距前一个报文到达时间相差1秒的报文
4. <或lt
例如:tcp.window_size < 1460
显示当TCP接收窗口小于1460字节时的报文
5. >=或ge
例如:dns.count.answers >= 10
显示包含10个以上answer的DNS响应报文
6. <=或le
例如:ip.ttl <= 10
显示IP报文中Time to Live字段小于等于10的报文
7. contains
例如:http contains “GET”
显示所有HTTP客户端发送给HTTP服务器的GET请求

对于基于TCP应用的过滤条件采用比较运算符。例如,如果想看端口80上面的HTTP数据流,使用HTTP.port==80。

小贴士:

运算符两边不用留空格。ip.src == 10.2.2.2与ip.src==10.2.2.2的效果是相同的。

使用Expressions:

当你实在不知道该过滤些什么的时候,使用显示过滤器工具栏的Expression按钮。在Filter Expression窗口,输入感兴趣的应用或协议名,跳转到Field Name列表中相应条目。Relation选项用来添加一个比较运算符,窗口右端是预先定义的值。点击Apply按钮完成。

编辑和使用默认过滤器:

Wireshark提供15个缺省显示过滤器供创建新的显示过滤器时参考。点击Filter按钮或点击Display Filter按钮打开显示过滤器窗口,如下图所示:


下图显示了缺省过滤器列表,选中之后点击OK。


小心使用缺省过滤器。以太网和IP主机过滤器可能与实际网络不符。使用之前必须编辑或作为创建参考。

小贴士:

显示过滤器保存在一个名为dfilters的文件中,可以使用任何文本编辑器来进行编辑。要找到你的dfilters文件,首先在Status条的右端查找当前profile名。如果这一区域表明你在默认profile,选择Help\About Wireshark\Folders并双击Personal Configuration文件夹链接,dfilters文件就在这个目录里。

时间: 2024-08-30 04:26:39

一站式学习Wireshark第九章的相关文章

一站式学习Wireshark第二章

TCP: TCP/IP通过三次握手建立一个连接.这一过程中的三种报文是:SYN,SYN/ACK,ACK. 第一步是找到PC发送到网络服务器的第一个SYN报文,这标识了TCP三次握手的开始. 如果你找不到第一个SYN报文,选择Edit -> Find Packet菜单选项.选择Display Filter,输入过滤条件:tcp.flags,这时会看到一个flag列表用于选择.选择合适的flag,tcp.flags.syn并且加上==1.点击Find,之后trace中的第一个SYN报文就会高亮出来了

《Python基础教程(第二版)》学习笔记 -&gt; 第九章 魔法方法、属性和迭代器

准备工作 >>> class NewStyle(object): more_code_here >>> class OldStyle: more_code_here 在这两个类中,NewStyle是新式的类,OldStyle是旧式的类,如果文件以__metaclass__ = type 开始,那么两个类都是新式类. 构造方法 构造方法,当一个对象被创建后,会立即调用构造方法.Python中创建一个构造方法,只要把init方法的名字从简单的init修改成__init__

一站式学习Wireshark(一):Wireshark基本用法 | 快课网

body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI",Tahoma,Helvetica,Sans-Serif,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLiU,serif; font-size: 10.5pt; line-height: 1.5;

Java学习笔记—第九章 字符串String

第九章 字符串String Java中使用String类来创建一个字符串变量,字符串变量是类类型变量,是一个对象.声明字符串的语法格式如下:String s; 创建字符串:通过String类提供的构造方法可创建字符串,有以下几种方式: (1)创建字符串对象时直接赋值,例如: String s1 = "hello"; String s2 = new String("hello"); (2)由一个字符串创建另一个字符串,例如: String s1 = "hel

Android学习笔记—第九章 Activity的加载模式

第九章 Activity的加载模式 task:类似于栈,每次打开界面会创建一个task,然后将这开启的界面放入到该task中. (1)standard:默认模式 每次都会创建一个新的界面,将该界面加入task中 (2)singleTop:栈顶单实例模式 a. 如果目标Activity不存在,创建一个新的Activity,存入到task中 b. 如果目标Activity已经存在,并且处于栈顶,不会再创建新的Activity c. 如果目标Activity已经存在,但不处于栈顶,创建一个新的Acti

一站式学习Wireshark第五章

TCP通过滑动窗口机制检测丢包,并在丢包发生时调整数据传输速率.滑动窗口机制利用数据接收端的接收窗口来控制数据流. 接收窗口值由数据接收端指定,以字节数形式存储于TCP报文头,并告知传输设备有多少数据将会存储在TCP缓冲区.缓冲区就是数据暂时放置的地方,直至传递至应用层协议等待处理.因此,发送端每次只能发送Window Size字段指定的数据量.为了使发送端继续传送数据,接收端必须发送确认信息:之前的数据接收到了.同时必须对占用缓冲区的数据进行处理以释放缓存空间.下图显示了接收窗口是如何工作的:

一站式学习Wireshark第四章

作为网络管理员,很多时间必然会耗费在修复慢速服务器和其他终端.但用户感到网络运行缓慢并不意味着就是网络问题. 解决网络性能问题,首先从TCP错误恢复功能(TCP重传与重复ACK)和流控功能说起.之后阐述如何发现网络慢速之源.最后,对网络各组成部分上的数据流进行概况分析.这几张内容将会帮助读者识别,诊断,以及排查慢速网络. 更多信息接下来的内容,较多是黑白图片了.虽然看起来有点不爽,但还是很值得一看. TCP错误恢复功能: TCP的错误恢复功能是定位,诊断及修复网络延时的最佳工具.延时可以在单程也

一站式学习Wireshark第三章

基本IO Graphs: IO graphs是一个非常好用的工具.基本的Wireshark IO graph会显示抓包文件中的整体流量情况,通常是以每秒为单位(报文数或字节数).默认X轴时间间隔是1秒,Y轴是每一时间间隔的报文数.如果想要查看每秒bit数或byte数,点击"Unit",在"Y Axis"下拉列表中选择想要查看的内容.这是一种基本的应用,对于查看流量中的波峰/波谷很有帮助.要进一步查看,点击图形中的任意点就会看到报文的细节. 为了讲解方便,点击示例报文

一站式学习Wireshark第七章

Summary: 从statistics菜单,选择Summary: 如下图的截屏所示,你会看到: File: 捕捉文件的一般信息,如文件名和路径,长度,等等 Time: 第一个包和最后一个包的时间戳,以及抓包过程持续时间 Capture: 显示文件捕捉于哪一个接口,以及评论窗口 在窗口的较低部分是Display窗口,展示抓包文件统计信息的摘要,包括: 捕捉报文的总数与百分比 显示报文的数量(加上过滤条件之后) 标记报文的数量 何时使用: 这一菜单简单收集所有抓包数据,在定义了过滤条件的时候,将呈