tshark是网络分析工具wireshark
下的一个工具,主要用于命令行环境进行抓包、分析,尤其对协议深层解析时,tcpdump
难以胜任的场景中。本系列文章将整理介绍tshark相关内容。
简介
安装
在linux下安装(debian或ubuntu)
sudo apt-get install tshark
安装完成后在抓包之前,可以先检查版本、查看帮助等了解tshark初步了解
安装后检查
按照安装wireshark的方式,安装完成后,启动“终端”(命令提示符):
tshark -v
tshark参数命令解析
查看帮助如下:
➜ ~ tshark -h
TShark (Wireshark) 3.0.1 (v3.0.1-0-gea351cd8)
Dump and analyze network traffic.
See https://www.wireshark.org for more information.
Usage: tshark [options] ...
主要参数说明
接口报文捕捉
-i 接口名或网卡编号 (默认: 第一个非环回接口)
-f 使用libpcap过滤表达式进行包过滤
-s 设置每个抓包的大小,默认为65535。
(相当于tcpdump的-s,tcpdump默认抓包的大小仅为68)
-p 不使用混杂模式抓捕报文(即只抓取与本机有关的流量)
-I 如果支持则启用镜像模式
-B 内核缓存大小 (默认2MB)
-y 链路层类型 (默认为找到的第一个协议)
--time-stamp-type 接口时间戳类型
-D 列出所有接口并退出
-L 列出所有接口链路层类型并退出(供-y参数使用)
--list-time-stamp-types 列出所有接口时间戳类型并退出(供--time-stamp参数使用)
捕获终止条件
-c 捕获到n个包时停止 (默认不限,持续捕获)
-a ... duration:NUM - 捕获进行NUM后停止
filesize:NUM - 输出文件大于NUM KB后停止
files:NUM - 输出超过NUM个文件后停止
捕获输出
-b ... duration:NUM - 在NUM秒后写入下一个文件(文件名由-w参数决定)
interval:NUM - create time intervals of NUM secs
filesize:NUM - 在文件大于NUM KB后写入下一个文件
files:NUM - 循环缓存: 在NUM个文件后替换早前的
读取文件
-r
分析处理
-2 执行two-pass分析
-M 执行会话自动重置
-R 包读取过滤使用wireshark显示过滤表达式(配合-2参数)
-Y 包显示过滤使用wireshark显示过滤表达式
-n 不进行名称解析 (def: all enabled)
-N 启用指定的地址名字解析: "mnNtdv"
(“m”代表MAC层,“n”代表网络层,“t”代表传输层,“N”代表当前异步DNS查找。)
-d ==, ...
"解析为",详见man帮助页面。例: tcp.port==8888,http
(注意选择子和解包协议之间不能留空格)
-H 读取主机列表文件,将被写入捕获的文件(Implies -W n)
--enable-protocol
启用协议报文解析
--disable-protocol
不对指定协议报文解析
--enable-heuristic
启用协议报文启发式解析
--disable-heuristic
不对指定协议报文启发式解析
输出
-w 使用pcapng格式将报文写入"outfile"文件
(或'-'表示标准输出,直接显示在终端)
-C 启动时使用指定的配置文件
-F
杂项
-h 显示帮助
-v 显示版本
-o : ... 覆盖配置项
-K 使用keytab文件用于解密kerberos
-G [report] 生成一份或多份报告,默认report="fields"
使用"-G help"获取更多信息
补充说明
支持包输出格式
可用作不同格式转化工具,推荐使用默认的pcapng
tshark -F
tshark: option requires an argument -- F
tshark: The available capture file types for the "-F" flag are:
...
pcap - Wireshark/tcpdump/... - pcap
pcapng - Wireshark/... - pcapng
...
捕获过滤(Capture Filter)
抓包前在网络接口上设置过滤的,使用BPF表达式(tcpdump、libpcap通用)。
通常用于抓取指定的ip、协议,可定位到3层,可以通过简单字符进行。不建议作过多过滤(规则复杂可能影响抓包性能)
读取(显示)过滤(Display Filter)
用于抓包之后,能够对报文可识别的协议字段进行过滤,可对2~7层过滤,可使用逻辑表达式,多个条件结合使用。
注意:
建议在使用时,先在wireshare过滤栏调试,具有字段提示,表达式合规会显示绿色
参考:
- tshark linux 命令
- tshark官方文档
系列文章:
- 网络分析利器wireshark命令版(1):tshark简介
- 网络分析利器wireshark命令版(2):tshark使用示例
- 网络分析利器wireshark命令版(3):Apache Spot中tshark模块
- 网络分析利器wireshark命令版(4):tshark结合ES