过滤器分为抓包过滤器和显示过滤器

抓包过滤器配置于抓包前,配置后,只抓经过抓包过滤器过滤的包 显示过滤器配置于抓包后,配置后,将已抓取的包进行过滤,得出心仪的包

抓包过滤器:

只抓取以太网类型为0x0800的流量   ether proto 0800 只抓vlan 10 的流量  vlan 10 抓 vlan 10 、vlan 20 、 vlan 30 的流量  vlan 10 and vlan 20 and 30 只抓发往主机10.1.1.1的所有流量  dest host 10.1.1.1 只抓源于192.168.1.0/24的所以流量  src net 192.168.1.0/24 或src net 192.168.1.0 netmask 255.255.255.0 不抓广播或多播  no broadcast 或 no multicast 只抓源于或发往2001::/16的ipv6数据包  net 2001::/16 只抓取icmp流量  ip proto 1 只抓ICMP echo request 流量 icmp[icmptype]==icmp-echo或icmp[icmptype]==8 只抓目的端口为80的数据包 dst port 80 或 dst port http 只抓所有TCP连接中用来发起(SYN标记位置1)连接或终止链接(FIN标记位置1)的数据包(TCP连接属于全双工连接,客户端与服务器之间会建立双向连接  tcp [tcpflags] & (tcp-syn | tcp-fin) != 0 只抓RST标记位置1的TCP数据包  [tcpflags]&(tcp-rst) !=0 抓特定长度的包,长度小于10  len<= 10 只抓源或目的端口范围在2000到2500之间的TCP数据包  tcp portrange 2000-2500 抓取所以TELNET流量,但由主机192.168.1.1发起的除外  tcp port 23 and not src host 192.168.1.1 proto[offset:bytes]  根据字节偏移和净载匹配来过滤 proto(协议类型:ip\udp\tcp等)【从协议头部的开始所偏移的字节数:抓包过滤器所要检查的字节数】 只抓目的端口范围为50-100的TCP数据包  tcp[2:2]>50 and tcp[2:2]<100 只抓窗口大小字段值低于8192的TCP数据包  tcp[14:2]<8192 ipv4多播流量:以太网帧的目的MAC地址必以01:00:5e打头 ipv6多播流量:以太网帧的目的MAC地址必以33:33打头

SYN:打开连接
FIM:拆除连接
ACK: 确认收到数据
RST:立即拆除连接
PSH:表示应将数据提交给末端应用程序(进程)处理

显示过滤器:

包含某个(串)字符 contains  //http.host contains cisco 某串字符匹配某个条件 match   //http.host matches www.cisco.com 在参数和条件操作符之间可以留空格,也可以不留空格 源和目的IP地址至少一个不为 192.168.1.100   // ip.addr != 192.168.1.100 源和目的ip地址均不为 192.168.1.100   //!(ip.addr == 192.168.1.100) ETHERNET过滤器:只显示发往或源于具有某MAC地址的主机的数据帧   //eth.src==10:0b:a9:33:64:12 ARP过滤器:只显示请求帧   //arp.opcode==1 IP、ICMP过滤器   //ip.src == 10.1.1.1 只显示交换与一一对IP主机之间的所有IP数据包   //ip.addr==200.1.1.1 and ip.addr==19.168.1.1 只显示发往IP多播目的地址的所有数据包   //ip.dse == 224.0.0.0/4 只显示发往或源于某个IPV6地址的主机的IPV6数据包   //ipv6.addr==::1 显示指定IP子网(10.0.0.0/24)的主机,发往域名中包含指定字符串的网站(比如sohu)的所有IP流量   //ip.src==10.0.0.0/24 and http.host contains "souhu" 显示发源于指定IP子网(10.0.0.0/24)的所有IP广播流量   //ip.src==10.0.0.0/24 and eth.dst==ffff.ffff.ffff 只显示是所有广播包,但主机执行ARP请求操作时所触发的广播包除外   //not arp and eth.dst==ffff.ffff.ffff 显示除ICMP和ARP外所有流量   //not arp && not icmp 根据TCP/UDP端口来筛选包   //tcp.port == 《value》//udp.srcport==<value> tcp.analysis:分析TCP重传、重复确认、窗口大小、 tcp.analysis.retransmission tcp.analysis.duplicate_ack tcp.analysis.zero_window tcp.flags:检查数据包TCP头部中各标记位的置位情况 tcp.flags.syn==1 tcp.flags.reset==1 tcp.flags.fin==1 tcp.window_size_value<10 //检查头部窗口大小字段值低于10的数据包 HTTP显示过滤器: 显示访问某指定主机名的HTTP协议数据包  //http.host=="www.baidu.com" 显示包含HTTP GET方法的HTTP数据包   //http.request.method=="GET" 显示HTTP客户端发起的包含指定URI请求的HTTP数据包 // http.request.uri == "/v2/rating/mail.goole.com" 显示包含字符串:"mail.google.com"的URI请求的HTTP数据包   //http.request.uri contains "mail.google.com" 显示网络中传播的所有包含COOKIE请求的HTTP协议数据包   //http.cookie 显示所有包含HTTP服务器发送给HTTP客户的COOLIE SET命令的HTTP数据包   //http.set_cookie 显示包含ZIP文件中的HTTP数据包   //http matches ".zip" && http.request.method=="GET" DNS显示过滤器: dns.flags.response==0  //DNS查询 dns.flags.response==1   //DNS响应 FTP过滤器: 显示所有包含特定FTP请求命令的FTP数据包  //ftp 显示所有从TCP端口20或从其他端口发出的包含实际FTP数据的FTP数据包  //ftp-data

正则表达式:

^:匹配行开头 $:匹配行结尾 |:二选一 *:0至多次 +:1至多次 ?:最多一次 {n}:精确N次 {n,}:至少N次 {n,m}:不低于N次也不高于M次