在网络中,我们通常不需要捕获所有的数据包,我们经常只需要捕获到我们想要的数据包就可以了,如:我们只需要捕获tcp包或者arp包等。

当我们只需要捕获tcp包时,在选择网络连接(网卡)之后,先不要选择start,而是选择option,然后再弹出窗口中的capture filter栏中输入tcp即可,这样我们wireshark就只会捕获tcp类型的数据包了。

你也可以使用wireshark内置的过滤规则来限制捕获数据包,只需要点击capture filter,然后再弹出的窗口中,选择相应的规则即可。我们也可以自己创建新的规则到内置规则中,这样下次我们还需要进行类似的操作时就不用再手动书写规则,而直接可以在内置规则中选择即可。

选择或书写好规则后,只需要单击start按钮即可对相应的数据包进行捕获。

捕获过滤规则采用BPF语法,所以要灵活使用过滤器,则掌握BPF语法是关键。使用BPF语法创建的过滤器被称为表达式,并且每个表达式包含一个或多个原语,每个原语包含一个或多个限定词,然后后面再跟着一个ID名字或者数字,如:dst host 192.168.1.1 && tcp port 80。

这个例子的意思是捕获发往目标主机ip地址为192.168.1.1的80端口的tcp流量数据包。

dst、host、tcp和port是限定词,192.168.1.1和80是ID,&&是操作符,&&之前部分是为一个原语,即:dst host 192.168.1.1,&&之后部分为另一个原语,即:tcp port 80。

限定词包括:

限定词

说明

例子

Type

指出名字或数字所代表的意义

host、net、port

Dir

指明传输方向是前往还是来自名字或数字

src、dst

Proto

限定所要匹配的协议

ether、ip、tcp、udp、http、ftp、icmp等

我们还可以对协议域进行捕获过滤,如表达式icmp[0]==8 || icmp[0]==0表示我们只捕获echo请求(类型8)和echo回复(类型0)的icmp数据包。

常用捕获过滤器:

过滤器

说明

tcp[13]&32==32

设置了 URG 位的 TCP 数据包

tcp[13]&16==16

设置了 ACK 位的 TCP 数据包

tcp[13]&8==8

设置了 PSH 位的 TCP 数据包

tcp[13]&4==4

设置了 RST 位的 TCP 数据包

tcp[13]&2==2

设置了 SYN 位的 TCP 数据包

tcp[13]&1==1

设置了 FIN 位的 TCP 数据包

tcp[13]==18

TCP SYN-ACK 数据包

ether host 00:00:00:00:00:00(MAC地址)

流入或流出该 MAC 地址的流量

!ether host 00:00:00:00:00:00(MAC地址)

不流入或流出该 MAC 地址的流量

broadcast

仅广播流量

icmp

ICMP 流量

tcmp[0:2]==0x0301

ICMP 目标不可达、主机不可达

ip

仅 IPv4 流量

ip6

仅 IPv6 流量

udp

仅 UDP 流量

wireshark域名ip_原语

wireshark域名ip_网络_02



转载于:https://blog.51cto.com/whitecat/1356877