2.3 显示过滤器
显示过滤器远比抓包过滤器更加灵活和强大。显示过滤器并不会丢弃数据包,只是为了用户阅读之便将一部分数据包隐藏起来而已。丢弃数据包这种做法其实效率不高,因为一旦数据包被丢弃,这些数据包也就无法再恢复回来了。在用户配置了显示过滤器之后,只有那些满足用户过滤器所设置条件的数据包才会被软件显示出来。在应用过滤器之后,用户就可以在Wireshark窗口状态栏的第二列看到一系列数据包。
显示过滤器可以用于Packet List Pane(数据包列表面板)上面的Filter对话框中的抓包文件。显示过滤器使用的语法很容易适应并且付诸应用。对于软件的新用户来说,显示过滤器就是一种超级强大的功能,让软件的用户可以根据当前的环境,隐藏那些不满足自己需求的数据包。
显示过滤器可以用很多不同的参数来作为匹配标准,比如IP地址、协议、端口号、某些协议头部的参数。此外,用户也用一些条件工具和串联运算符创建出更加复杂的表达式。用户可以将不同的表达式组合起来,让软件显示的数据包范围更加精确。在数据包列表面板中显示的所有数据包都可以用数据包中包含的字段进行过滤。
显示过滤器并不会删除数据,它们只会将数据隐藏起来,只要用户清空了Filter对话框中的过滤器,那些隐藏的数据还会再次显示出来。比如,如果希望软件只显示ICMP数据包,用户只需要在过滤器对话框中输入ICMP然后点击Apply即可。太简单了,是不是?如果还想查看所有数据包,只需要点击Clear按钮,一切就会恢复原先的状态。
Wireshark具备一些强大的特性,这些特性可以在用户创建过滤器时给用户提供帮助。用户只需要点击Filter对话框最后的Expression按钮,选择想要过滤的协议,然后指定参数即可。
filter expression对话框使用起来相当简单。如果读者是第一次使用这个对话框,下面的文字就是你们的福利,我会介绍一下如何使用这个对话框。
2.现在,读者会看到如下所示的Expression窗口。
3.例如,如果用户只想浏览那些与192.168.1.1这个IP地址有关的数据包,那么可以下拉Field Name窗口找到IPv4,然后展开这个条目,选择ip.addr这个可选项。
4.接下来从旁边的Relation对话框中,选择希望添加到表达式中的运算符。
5.最后,在Value(IPv4 address)对话框中写下自己要查找的IP地址。
6.然后,点击OK。如果之前的步骤全都操作无误的话,那么用户此时就会看到从自己定义的ip发送的数据包了(读者可以将192.168.1.1修改为自己想要监测的IP地址)。
7.在Value对话框下面,有一个Predefined values对话框,当有些协议限制用户只能使用某些参数集时,就可以用到这个对话框。用户可以在这里选择一个参数。
8.在Predefined Values对话框下面,有一个Range对话框。如果协议支持的话,用户可以在这个对话框中输入一个参数范围,如1-78、0-5、120-255。
上面的流程是创建显示过滤器最简单的方法之一;但创建显示过滤器也有一些其他的方法。用户手动输入过滤器可以大大提升网络的性能,但是要求用户具备一定的专业技能。
在开始详细介绍手动创建过滤器之前,还希望读者能够了解一些内容,比如比较运算符和逻辑运算符。在给Wireshark创建或简单或复杂的过滤器时,这些运算符常常可以发挥作用。
下表总结了可以在创建显示过滤器时使用的比较运算符。
接下来,我们来看看用来将不同条件组合在一起的逻辑运算符。下表总结了所有的逻辑运算符。
保存过滤器以兹日后使用
有时候,用户希望可以使用之前创建的过滤器,因为这样可以简化自己的工作,让工作能够快速完成。Wireshark可以让用户将自己创建的显示过滤器保存起来,在将来有需要的时候再拿出来使用。这种方法可以为用户节省下大量的时间和精力,让用户不必反复输入某些复杂的显示过滤器。要保存显示过滤器,可以参照下面的操作步骤。
1.找到Analyze | Display filters,这时软件会弹出一个图2-13所示的窗口。
2.接下来,点击New,在Filter name(过滤器名称)和Filter string(过滤器字符串)中输入相应的参数。比如,我们想要创建一个显示过滤器,让软件不显示ARP数据包。那么,我们就可以输入图2-14所示的参数。
3.在输入之后,点击Apply。接下来,在默认过滤器列表中输入参数,说明自己希望保存NO ARP,以备后面使用这个显示过滤器。
4.一定要确认Filter String文本框的背景颜色是绿色的,因为绿色背景表示用户输入的表达式是正确的;如果文本框是红色背景,用户就要检查自己输入的表达式了;如果背景是黄色的,这表示执行这个表达式的结果可能会与用户期待的执行结果不符。现在,我们可以点击Apply,然后点击OK。
5.如果用户在创建过滤器时希望获得软件的帮助,可以点击Filter string文本框旁边的Expression按钮,这时软件可以显示出所有的协议和过滤器中最常使用的表达式。
6.Delete按钮可以帮助用户将当前的过滤器从列表中删除。
7.点击Cancel按钮之后,软件会丢弃所有没有保存的修改,同时关闭窗口。
8.点击OK按钮之后,软件会执行Save同时关闭窗口。
9.接下来,我们可以试着应用一下刚刚创建的过滤器。找到Analyze | Display Filter | (拉动滚动条进行选择)Display Filter | Apply。
读者可以试着按照上面的方法创建自己希望保存下来的显示过滤器。