网络分析利器wireshark命令版:tshark简介(1)

37次阅读

共计 3600 个字符,预计需要花费 9 分钟才能阅读完成。

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 <interface> 接口名或网卡编号 (默认: 第一个非环回接口)
-f <capture filter> 使用 libpcap 过滤表达式进行包过滤
-s <snaplen> 设置每个抓包的大小,默认为 65535。
(相当于 tcpdump 的 -s,tcpdump 默认抓包的大小仅为 68)
-p 不使用混杂模式抓捕报文(即只抓取与本机有关的流量)
-I 如果支持则启用镜像模式
-B <buffer size> 内核缓存大小 (默认 2MB)
-y <link type> 链路层类型 (默认为找到的第一个协议)
–time-stamp-type <type> 接口时间戳类型
-D 列出所有接口并退出
-L 列出所有接口链路层类型并退出(供 - y 参数使用)
–list-time-stamp-types 列出所有接口时间戳类型并退出(供 –time-stamp 参数使用)
捕获终止条件
-c <packet count> 捕获到 n 个包时停止 (默认不限,持续捕获)
-a <autostop cond.> … duration:NUM – 捕获进行 NUM 后停止
filesize:NUM – 输出文件大于 NUM KB 后停止
files:NUM – 输出超过 NUM 个文件后停止
捕获输出
-b <ringbuffer opt.> … duration:NUM – 在 NUM 秒后写入下一个文件(文件名由 - w 参数决定)
interval:NUM – create time intervals of NUM secs
filesize:NUM – 在文件大于 NUM KB 后写入下一个文件
files:NUM – 循环缓存: 在 NUM 个文件后替换早前的
读取文件
-r <infile|-> 设置需要读取的文件名及路径 (或 ’-‘ 表示标准输入,从终端输入)
分析处理
-2 执行 two-pass 分析
-M <packet count> 执行会话自动重置
-R <read filter> 包读取过滤使用 wireshark 显示过滤表达式 (配合 - 2 参数)
-Y <display filter> 包显示过滤使用 wireshark 显示过滤表达式
-n 不进行名称解析 (def: all enabled)
-N <name resolve flags> 启用指定的地址名字解析: “mnNtdv”
(“m”代表 MAC 层,“n”代表网络层,“t”代表传输层,“N”代表当前异步 DNS 查找。)
-d <layer_type>==<selector>,<decode_as_protocol> …
“ 解析为 ”, 详见 man 帮助页面。例: tcp.port==8888,http
(注意选择子和解包协议之间不能留空格)
-H <hosts file> 读取主机列表文件,将被写入捕获的文件 (Implies -W n)
–enable-protocol <proto_name>
启用协议报文解析
–disable-protocol <proto_name>
不对指定协议报文解析
–enable-heuristic <short_name>
启用协议报文启发式解析
–disable-heuristic <short_name>
不对指定协议报文启发式解析
输出
-w <outfile|-> 使用 pcapng 格式将报文写入 ”outfile” 文件
(或 ’-‘ 表示标准输出,直接显示在终端)
-C <config profile> 启动时使用指定的配置文件
-F <output file type> 设置输出文件格式类型, 默认为 pcapng 格式
“-F” 留空则列出所有的文件类型
-V 输出中增加报文层次树 (包详细信息)
-O <protocols> 仅显示以下协议的详细信息,逗号分割
-P 每写入一个文件后进行包情况汇总
-S <separator> 数据包之间的行分割符
-x 输出中增加 16 进制和 ascii 字符信息 (报文按字节显示)
-T pdml|ps|psml|json|jsonraw|ek|tabs|text|fields|?
文本输出格式 (默认文本:text)
-j <protocolfilter> 当 -T ek|pdml|json 设置时协议层过滤
(例:”ip ip.flags text”, 过滤不展开的所有字节点,除非过滤中有指定的子节点)
-J <protocolfilter> 当 -T ek|pdml|json 选项设置时进行顶层协议过滤,
(例: “http tcp”, 过滤展开的所有字节点)
-e <field> 当 -T fields 设置时打印字段 (如 tcp.port,_ws.col.Info)
此选项可以多个用于打印多个字段
-E<fieldsoption>=<value> 当 -Tfields 选项启用时用于输出配置:
bom=y|n 打印 UTF-8 BOM
header=y|n 选择首行是否输出字段名(类似表头)
separator=/t|/s|<char> 选择字段采用 tab、空格、指定可打印字符为分割符
occurrence=f|l|a 打印第一个、最后一个或全部出现的数值(默认全部)
aggregator=,|/s|<char> 选择字段采用逗号、空格、指定可打印字符聚合字段
quote=d|s|n 选择对数值采用双引号、单引号、不用引号
-t a|ad|d|dd|e|r|u|ud|? 输出格式化的时间戳 (默认 r: rel. 优先)
-u s|hms 输出格式化秒 (默认 s: 秒)
-l 每个包之后就刷新标准输出
-q 向终端输出少量信息 (e.g. 当使用统计)
-Q 仅向 stderr 输出确切错误信息 (比 - q 信息更少)
-g 启用组用户读取输出文件
-W n 如果支持,保存额外信息到文件中
n = 写入网络地址解析信息
-X <key>:<value> 扩展选项,详见 man 页面
-U tap_name PDUs 专家模式, 详见 man 帮助页面
-z <statistics> 大量统计, 详见 man 帮助页面
–capture-comment <comment>
在最新创建的输出文件中增加捕获注释 (仅支持 pcapng 格式)
–export-objects <protocol>,<destdir> 保存指定导出协议对象到指定目录
–color 在输出的文本格式中支持类似 Wireshark 图形界面的色彩, 终端需要支持 24 位彩色
同时支持 pdml、psml 的色彩属性(注:这两张属性非标准)
–no-duplicate-keys 如果 -T json 设置, 合并重复键,将多个值归并在一个键下的数组中
–elastic-mapping-filter <protocols> 如果指定 -G elastic-mapping, 设置仅 mapping 文件中指定的协议
杂项
-h 显示帮助
-v 显示版本
-o <name>:<value> … 覆盖配置项
-K <keytab> 使用 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 官方文档

正文完
 0