我们知道Wireshark是一款非常优秀的全球领先的协议分析工具是一款功能强大、广受欢迎的开源网络协议分析工具可以帮助网络管理员、安全专家和开发人员等等深入了解网络流量诊断网络问题及确保网络安全其主要功能包含实时数据捕获、强大过滤器、多种协议支持和支持多种捕获文件格式等。另外Wireshark也是我们排查和定位相关网络通信问题的好帮手。但是当我们开启抓包操作后一般情况下抓包界面会看到很多很多的网络报文根本就无法很好的通过鼠标操作来找到我们需要分析的报文所以说通过Wireshark工具怎么样进行高效的抓包分析答案很简单那就是用好Wireshark的强大的“过滤器”功能达到事半功倍的效果所谓的“过滤器”其实就是查找或者搜索条件即我们通过设置搜索条件来仅抓取或者显示我们需要的协议数据报文以方便我们进行报文分析。一般有两种方式可以设置过滤条件第一种是直接在主界面的过滤条件输入框设置后按回车即可这种设置方式需要我们比较熟悉此协议的相关字段或者名称过滤条件的输入框显示为绿色过滤条件符合语法要求过滤条件的输入框显示为红色过滤条件不符合语法要求。输入条件的格式一般是协议名称字段子名称1字段子名称2全部是小写格式我们不用担心要写哪个因为当你输入上一级名称.号后会自动显示该级名称下所包含的所有子字段我们只要选择需要的即可这和自动补全功能类似你只要知道要抓取的是什么协议的报文就可以了不难吧第二种方式是直接到已有条件列表里面去选择你想要的过滤条件然后点击确定即可直接显示到过滤条件输入框里面两种方式都可以但是第一种相关来说更加方便吧。因为最近一直在断断续续折腾USB协议项目所以也在时不时通过Wireshark进行抓包和分析那我就先以USB的报文为例介绍一些常用的设置过滤条件的格式和方法吧其他协议的都差不多万变不离其宗。usb.device_address x按设备地址过滤其中x表示设备地址的值再次提醒过滤条件的输入框显示为绿色过滤条件符合语法要求红色不符合。usb.bus_id x按总线ID过滤usb.src x.x.x按源地址过滤usb.dst “x.x.x”按目的地址过滤一定要加英文双引号否则会查不到报文usb.endpoint_address x按端点地址过滤其中x表示端点地址的值usb_endpoint_address_direction x按报文的传输方向过滤x0表示过滤掉主机到设备的报文x1表示过滤掉报备到主机的报文其他的过滤条件在过滤条件输入框里输入信息时会显示所有子成员信息供选择另外可以通过运算符“”来组合过滤条件比如过滤出设备地址为19由主机到设备的报文再列举几个与UDP协议报文相关的过滤查找方法吧按源端口查找udp.port 源端口号按目的端口查找udp.dstport 目的端口号其他的像TCP协议IP协议等等有兴趣的都可以试试说不定哪天在排查bug的时候你就会用上了呢。另外如果感兴趣的话可以继续研究一下“捕获过滤器”的使用技巧如果你想下载Wireshark最新版本可以到Wireshark中文网看看。---------------------作者dffzh链接https://bbs.21ic.com/icview-3517343-1-1.html来源21ic.com此文章已获得原创/原创奖标签著作权归21ic所有任何人未经允许禁止转载。