弦月的博客
锦瑟无端五十弦,一弦一柱思华年。

在Wireshark运行过程中选择搜索(Ctrl-F),第一个默认的搜索选项就是显示过滤器
显示过滤器用于捕获文件,用来告诉Wireshark只显示那些符合过滤条件的数据包。
显示过滤器比捕获过滤器更加常用,是因为它可以让你对数据包进行过滤,却并不省略掉捕获文件中的其他数据。也就是说如果你想回到原先的捕获文件,你仅仅需要清空显示过滤表达式。
你可能需要使用显示过滤器,来清理过滤文件中不相关的广播流量,比如清理掉Packet List面板中与当前的分析问题无关的ARP广播,但是那些ARP广播之后可能会有用,所以最好暂时把他们过滤掉,而不是删除他们。
如果想要过滤掉不惑窗口中所有的ARP数据包,将你的鼠标放到Packet List面板上方的Filter文本框中,然后输入“!ARP”,就可以从Packet List面板中去掉所有的ARP数据包了,如下图。

过滤器表达式语法结构

你会经常用到捕获或者显示过滤器来对某一个协议进行过滤。举例来说,如果你在解决一个TCP问题,那么你就只希望看到捕获文件中的TCP流量。一个简单的tcp过滤器就可以解决这个问题。
加入为了解决你的TCP问题,你使用了恨过ping功能,所以也就产生了很多ICMP流量,你可以通过“!icmp”这个过滤器表达式,将你捕获文件中的ICMP流量屏蔽掉。
比较操作符可以让你进行值的比较。举例来说,当你检查一个TCP/IP网络中的问题时,你可能经常需要检查和某一个IP地址相关的数据包。等于操作符可以让你创建一个只显示192.168.0.1这个IP地址相关数据包的过滤器。

ip.addr==192.168.0.1

现在假设你只需要查看哪些长度小于128字节的数据包,你可以使用“小于或等于”操作符,来完成这个要求,其过滤器表达式如下。

frame.len<=128

Wireshark过滤器表达式的比较操作符

操作符 说明
== 等于
!= 不等于
> 大于
< 小于
>= 大于等于
<= 小于等于

逻辑运算符可以让你将多个过滤器表达式合并到一个语句中,从而极大提高过滤器的效率。举例来说,如果我们只想显示两个IP地址上的数据包,我们可以使用or操作符来创建一个表达式,只显示这两个IP地址的数据包,如下所示。

ip.addr==192.168.0.1 or ip.addr==192.168.0.2

Wireshark的逻辑操作符

操作符 说明
and 两个条件需同时满足
or 其中一个条件被满足
xor 有且仅有一个条件被满足
not 没有条件被满足

显示过滤器表达式实例

常用显示过滤器

过滤器 说明
!tcp.port==3389 排除RDP流量
tcp.flag.syn==1 具有SYN标志位的TCP数据包
tcp.flag.rst==1 具有RST标志位的TCP数据包
!arp 排除ARP流量
http 所有HTTP流量
tcp.port23 || tcp.port21 文本管理流量(Telnet或FTP)
smtp || pop || imap 文本email流量(SMTP、POP或IMAP)
posted on 2017-07-09 20:42  弦月C  阅读(6650)  评论(0编辑  收藏  举报