如图所示, wireshark有俩种过滤器, 一个是捕获过滤器(中间部分的capture filter), 一个是显示过滤器(工具栏下面的display filter):
简单的表达式(primitive expressions) 通过 not/or 串联起来
[not] primitive [and|or [not] primitive ...]
抓取tcp协议, 端口号23 , 地址是192.168.1.100的数据包:
tcp port 23 and host 192.168.1.100
抓取tcp协议, 端口号23, 排除源地址192.168.1.100 的数据包:
tcp port 23 and src host 192.168.1.100
抓取192.168.1 网段的所有数据包配置:
net 192.168.1.0/24
或
net 192.168.1.0 mask 255.255.255.0
抓取来自 192.168.1 网段的所有数据包配置:
src net 192.168.1.0/24
或
src net 192.168.1.0 mask 255.255.255.0
抓取dns数据包, 端口号53的数据包配置:
port 53
抓取域名 www.example.com 的非https 和 http数据包:
host www.example.com and not port 443 and not port 80
或
host www.example.com and not (port 443 or port 80)
抓取指定的端口号范围内的数据包:
抓取来自端口号1000-1100的tcp数据包
tcp[0:2] >=1000 and tcp[0:2] <= 1100
或
tcp src portrange 1000-1100
tcp[0:2] 表示tcp中的前俩个字节, 表示源端口号值, tcp[2:2] 表示tcp 第三第四字节数据, 表示目标端口号值, 这种做法在复杂的过滤配置中会经常用到, 也适用ip协议等其他协议。用法为proto [ expr : size ] , 支持的协议有ether, fddi, tr, wlan, ppp, slip, link, ip, arp, rarp, tcp, udp, sctp, icmp, ip6 or radio, 对于tcp, udp 或其他高阶协议 , 目前只支持基于 ip4的, ip6以后才会支持。
抓取 域名 www.example.com 的 TCP SYN的包:
host www.example.com and tcp[tcpflags] & tcp-syn != 0
tcp flags位可用值为tcp-fin, tcp-syn, tcp-rst, tcp-push, tcp-ack, tcp-urg, tcp-ece, tcp-cwr