在工作中我们常会用到wireshark抓取数据包进行分析,当使用wireshark默认设置时,会捕获到大量冗余的数据包,如果没有过滤器过滤,我们很难找到自己想要抓取的数据,这个时候就需要用到wireshark的过滤器来过滤,它们可以帮助我们在庞杂的结果中迅速找到我们需要的信息。
wireshark提供的过滤器有捕捉过滤器和显示过滤器。

 

捕捉过滤器:用于决定将什么样的信息记录在捕捉结果中。需要在开始捕捉前设置。
显示过滤器:在捕捉结果中进行详细查找。他们可以在得到捕捉结果后随意修改。

使用场景:

抓包过滤器:大流量网络环境故障检测,当进行数据包捕获时,只有满足给定的包含or排除表达式的数据包会被捕获。

显示过滤器:该过滤器根据指定的表达式用于在一个已捕获的数据包集合中,隐藏不想显示的数据包,或者只显示那些需要的数据包。

两种过滤器的目的是不同的。
捕捉过滤器是数据经过的第一层过滤器,它用于控制捕捉数据的数量,以避免产生过大的日志文件。
显示过滤器是一种更为强大(复杂)的过滤器。它允许您在日志文件中迅速准确地找到所需要的记录。

一、捕捉过滤器如何使用?

设置捕捉过滤器步骤:

1、选择capture(捕获)——>options(选项)

2、填写"capture filter"栏或者点击"capture filter"按钮为您的过滤器起一个名字并保存,以便在今后的捕捉中继续使用这个过滤器。
3、点击开始(Start)进行捕捉。

wireshark捕获过滤器抓取指定接口 wireshark使用过滤器过滤数据_网络

语法

Protocol

Direction

Host(s)

Value

Logical Operations

Other expression

例子

tcp

dst

192.168.1.10

80

and

tcp dst 192.168.1.100 3128

Protocol(协议):

常用的值:ether、fddi、ip、arp、rarp、tcp、udp

如果没有特别指明协议,则默认使用所有协议

Direction(方向)

常用的值:src、dst、src and dst、src or dst

如果没有特别指明来源或目的地,则默认使用“src or dst”作为关键字。

例如:“host 192.168.1.10”与“src or dst host 192.168.1.10”代表意义相同。

Host(主机)

常用的值:net、port、host、portrange

如果没有指定此值,则默认使用“host”关键字

Logical Operations(逻辑运算):

可能的值:not、and、or

举例:

tcp dst port 3128

显示目的TCP端口为3128的封包。

ip src host 192.168.1.10

显示源地址为192.168.1.10的封包。

host 192.168.1.10

显示目的或源IP地址为192.168.1.10的封包。

src portrange 2000-2500

显示来源为UDP或TCP,并且端口号在2000-2500范围内的封包。

not imcp

显示除了icmp意外的所有封包。(icmp包含ping、tracert)

src host 192.168.1.10 and not dst net 192.168.1.0/24

显示来源IP地址为192.168.1.10,但目的地址不是192.168.1.0/24的封包

二、显示过滤器

wireshark捕获过滤器抓取指定接口 wireshark使用过滤器过滤数据_wireshark_02

语法

语法

Protocol

. String 1

.String 2

Comparison operator

Value

Logical Operations

Other expression

例子

ftp

passive

ip

==

192.168.1.10

xor

icmp.type

Protocol(协议):

可以使用OSI模型第2至第7层的协议

wireshark捕获过滤器抓取指定接口 wireshark使用过滤器过滤数据_测试工具_03

String1、String2(可选项):

协议的子类

Comparison operators(比较运算符):

英文写法

C语言写法

含义

eq

==

等于

ne

!=

不等于

gt

>

大于

lt

<

小于

ge

>=

大于等于

le

<=

小于等于

Logical expressions(逻辑运算符):

英文写法

C语言写法

含义

and

&&

逻辑与

or

||

逻辑或

xor

^^

逻辑异或

not

!

逻辑非

举例:

1、需要显示arp和icmp协议的报文,则输入arp || icmp

wireshark捕获过滤器抓取指定接口 wireshark使用过滤器过滤数据_测试工具_04

2、需要显示来源或目的IP地址为10.180.108.55的封包,则输入:ip.addr == 10.180.108.55

wireshark捕获过滤器抓取指定接口 wireshark使用过滤器过滤数据_网络_05

3、显示源或目的tcp端口号为443的封包,则输入:tcp.port == 443

wireshark捕获过滤器抓取指定接口 wireshark使用过滤器过滤数据_wireshark_06