过滤一个流
在一个协议为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