“介绍Wireshark抓包时使用的过滤规则。”
tcp
熟练使用Wireshark,对协议分析大有帮助。本文介绍抓取报文时使用的过滤规则和对已有报文的显示进行控制的显示规则。spa
01ip
—ci
过滤规则使用class
在抓取报文时使用的规则,称为过滤规则,Wireshark底层是基于Winpcap,所以过滤规则是Winpcap定义的规则,设置过滤规则后,抓到的报文仅包含符合规则的报文,其它报文则被丢弃。udp
Wireshark的过滤规则,与Linux下tcpdump的过滤规则基本相同,两者可相互参考。语法
在抓包选项内填写过滤规则,而后点开始便可使用过滤规则进行抓包。方法
过滤规则与协议相关,对wireshark过滤规则,只要了解相应协议(例如UDP、TCP),理解基本语法,都不算复杂。im
当前版本的Wireshark已经支持了部分简单的过滤规则,大大地简化了使用难度:数据
仅使用默认的规则进行过滤彻底没法知足过滤抓包须要,所以须要更深刻地对过滤规则进行了解,下一节进行详细说明。
02
—
过滤规则例子
本节经过一些例子,来讲明其用法。
一、仅抓取80端口的TCP报文
tcp port 80
这个规则是比较通用的仅抓取HTTP协议的规则,由于一般状况下,HTTP协议都是走TCP 80端口,这样设置抓包,能够知足大部分场景。
二、抓取80端口和8080端口的TCP报文
tcp port 80 or tcp port 8080
按第一条规则,虽然能知足大部分状况,但你们应该了解,HTTP协议能够设置走任意端口,如比较通用的8080端口,为更完整地抓包,则抓包规则中须要加入8080端口,所以咱们使用or将tcp port 80和 tcp port 8080两个条件链接,则能抓取全部80端口和8080端口的TCP报文。
除了or,还有and和not能够用在过滤规则中。
三、抓取IP为192.168.0.1的80端口的TCP报文
tcp port 80 and host 192.168.0.1
and 链接符表示两个条件必须为真,结果才为真,符合链接的两个条件的报文才被抓取。
四、抓取除ip为192.168.0.1而且端口为80的报文外的全部报文
not (tcp port 80 and host 192.168.0.1)
not链接符表示非,则符合not修饰的规则的报文将不被抓取。
()将规则包含,来肯定规则的优先级。
五、抓取ip报文
ether proto 0x0800
以太网头部有不少种协议,若是只想抓取一种协议,如IP协议,则按这条规则抓取。ether及proto为固定字段,表示以太头的proto字段,而0x0800为以太头部的IP协议类型值。若是要抓取ARP协议,则将值0x0800改成0x0806便可。
六、抓取IP负载长度大于100字节的报文
ip[2:2] > 100
[]表示偏移,IP协议头部偏移值为2,规则含义为ip数据段内偏移2字节的2字节内容的值大于100,而该内容若是熟悉IP协议的话,可知其为ip.total_length,对ether/tcp/udp这些经常使用协议,均可采用相似方法取值,固然,优先采用更简便的方法。
过滤规则适用于在抓包以前就设置好了条件,已经了解须要抓取那些报文,丢弃哪些报文的情景,若是须要在抓包以后进一步对报文进行分析,就必须使用显示规则,显示规则将在后续文章中介绍,敬请关注。
若是在过滤规则使用上有不懂的地方,能够关注我进行了解,免费的。
长按进行关注。