wireshark最常用过滤规则

过滤一个流

在一个协议为TCP的包上右击,选择"追踪流-TCP",将进入TCP流追踪,此时会在主面板上只会显示对应流的包。
stream对应的id可以在TCP中的stream index中查看,也可以直接使用如下命令来过滤对应流的包:

tcp.stream == 5
  • 1

查看sack包

tcp.options.sack
  • 1

查看乱序包(out of order)

tcp.analysis.out_of_order
  • 1

包长度

ip.len == 100 除了以太网头固定长度14,从IP Header到IP payload的总长度
frame.len == 119 整个数据包长度,从ethernet层开始到最后
  • 1
  • 2

过滤TCP重传数据包

tcp.analysis.retransmission
http and !(tcp.analysis.retransmission)
  • 1
  • 2

TCP reset包

tcp.flags.reset == 1 
  • 1

解析时间格式:

wireshark可以选择解析格式为墙上时间:
视图–>时间显示格式–>日期和时间

可以与内核时间匹配对应起来:
dmesg -T可以解析内核日志中的时间戳为墙上时间

设置时间参考,以特定报文时间为起始时间的计算:
1.选中开始报文
2.右击
3.设置/取消设置时间参考

根据时间过滤

frame.time >= "May 10, 2020 10:00:00.0" && frame.time < "May 10, 2020 10:30:00.0"
  • 1

IP地址过滤

ip.addr == 192.168.1.10    过滤包含有IP地址为192.168.1.10的包
ip.src == 192.168.1.10     过滤源地址为192.168.1.10的包
ip.dst == 192.168.1.10     过滤目的地址为192.168.1.10的包
  • 1
  • 2
  • 3

PORT端口号过滤

tcp.port == 80      过滤TCP端口包含有80的TCP包
tcp.srcport == 80   过滤TCP源端口为80的TCP包。
tcp.dstport == 80   过滤TCP目的端口为80的TCP包
udp.srcport == 80   过滤源端口为80的UDP包
udp.dstport == 80   过滤目的端口为80的UDP
  • 1
  • 2
  • 3
  • 4
  • 5

协议包过滤

tcp  过滤出tcp包
http 过滤出http包
udp 过滤出udp包
icmp 过滤出icmp包
arp  过滤出arp包
tcp or udp 过滤出tcp或者udp包
!(arp or icmp or dns) 排除这几种协议后的包
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

条件匹配规则

与C语言中的语法类似,与或规则采用:

&& 表示与
|| 表示或
== 表示等于
>= 表示大于等于
<= 表示小于等于
> 表示大于
< 表示小于
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

https://jin-yang.github.io/post/linux-network-mtu-oversize.html
https://cloud.tencent.com/developer/article/1603609
https://www.cnblogs.com/charlieroro/p/11363336.html