Ethereal是一个很流行的开源sniffer,支持包括solaris在内的很多平台。2006年初,主导Ethereal源码的大牛GeraldCombs跳槽到了CACE公司。原来“Ethereal”的商标就不能用了。伟大的开源项目如果因此而over,不免同好者唏嘘。怎么办?Combs等人只得舍弃人气既旺的Ethereal名号,将项目更名为Wireshark。它吸引了大多数原来Ethereal的contributor,从Ethereal的fork点0.99.1开始,继续添加无数令人兴奋的新功能。这个互联网的放大镜,展现给了我们一个生动却又枯燥,温馨伴着冷漠,充满智慧的流量和阴谋的机关,不舍虚构而又看似真实的“以太”世界。

Ethereal的玩法如大多sniffer。更有趣之处在于它提供了命令行的抓包程序tethereal(现在改名为tshark)等一系列命令行工具,能够无缝地融入unix/windows脚本语言,使嗅探、分析的工作更得强援。

tethereal/tshark位于图形化软件的相同目录内。和大多数unix脚本一样,它都提供了比较翔实的manpage(个人认为,可惜例子还是少了一点)。

以下试验均基于windows平台的Wireshark,版本0.99.3。


基本语法:tshark-a <capture autostop condition> ] ...[ -b <capture ring buffer option>] ...[ -B <capture buffer size (Win32 only)> ] [ -c <capture packet count> ][ -d <layer type>==<selector>,<decode-as protocol> ][ -D ][ -f <capture filter> ][ -F <file format> ][ -h ][ -i <capture interface>|- ][ -l ][ -L ][ -n ][ -N <name resolving flags> ][ -o <preference setting> ] ...[ -p ][ -q ][ -r <infile> ][ -R <read (display) filter> ][ -s <capture snaplen> ][ -S ][ -t ad|a|r|d ][ -T pdml|psml|ps|text ][ -v ][ -V ][ -w <outfile>|- ][ -x ][ -X <eXtension option>][ -y <capture link type> ][ -z <statistics> ]

根据试验,参数的书写有讲究。模仿tcpdump,可以把抓包过滤表达式写在命令的最后。一般将抓包表达式用引号quote起来(在windows上是双引号"),一是为了视觉方便,一是为了逃避其中字符和shell语法的冲突(如“>”,“||”等)。抓包过滤表达式也可以写在-f参数的后面,注意,此时更应该使用引号或者将-f放在最后。否则,它们会认为-f(可省)后面的参数都是表达式的一部分,而导致命令格式混乱。

主要参数分类含义权作解说如下:

1. 抓包接口类

  • -i设置抓包的网络接口,不设置则默认为第一个非自环接口。
  • -D列出当前存在的网络接口。在不了解OS所控制的网络设备时,一般先用“tshark-D”查看网络接口的编号以供-i参数使用。
  • -f 设定抓包过滤表达式(capture filterexpression)。抓包过滤表达式的写法雷同于tcpdump,可参考tcpdump manpage的有关部分。
  • -s 设置每个抓包的大小,默认为65535,多于这个大小的数据将不会被程序记入内存、写入文件。(这个参数相当于tcpdump的-s,tcpdump默认抓包的大小仅为68)
  • -p 设置网络接口以混合模式工作,即只关心和本机有关的流量。
  • -B 设置内核缓冲区大小,仅对windows有效。
  • -y设置抓包的数据链路层协议,不设置则默认为-L找到的第一个协议,局域网一般是EN10MB等。
  • -L列出本机支持的数据链路层协议,供-y参数使用。

2. 抓包停止条件

  • -c 抓取的packet数,在处理一定数量的packet后,停止抓取,程序退出。
  • -a 设置tshark抓包停止向文件书写的条件,事实上是tshark在正常启动之后停止工作并返回的条件。条件写为test:value的形式,如“-aduration:5”表示tshark启动后在5内抓包然后停止;“-afilesize:10”表示tshark在输出文件达到10kB后停止;“-afiles:n”表示tshark在写满n个文件后停止。(windows版的tshark0.99.3用参数“-afiles:n”不起作用——会有无数多个文件生成。由于-b参数有自己的files参数,所谓“和-b的其它参数结合使用”无从说起。这也许是一个bug,或tshark的manpage的书写有误。)

3. 文件输出控制

  • -b 设置ringbuffer文件参数。ringbuffer的文件名由-w参数决定。-b参数采用test:value的形式书写。“-bduration:5”表示每5秒写下一个ring buffer文件;“-bfilesize:5”表示每达到5kB写下一个ringbuffer文件;“-b files:7”表示ringbuffer文件最多7个,周而复始地使用,如果这个参数不设定,tshark会将磁盘写满为止。

4. 文件输入

  • -r设置tshark分析的输入文件。tshark既可以抓取分析即时的网络流量,又可以分析dump在文件中的数据。-r不能是命名管道和标准输入。

5. 处理类

  • -R设置读取(显示)过滤表达式(read filterexpression)。不符合此表达式的流量同样不会被写入文件。注意,读取(显示)过滤表达式的语法和底层相关的抓包过滤表达式语法不相同,它的语法表达要丰富得多,请参考http://www.ethereal.com/docs/dfref/和http://www.ethereal.com/docs/man-pages/ethereal-filter.4.html。类似于抓包过滤表达式,在命令行使用时最好将它们quote起来。
  • -n禁止所有地址名字解析(默认为允许所有)。
  • -N启用某一层的地址名字解析。“m”代表MAC层,“n”代表网络层,“t”代表传输层,“C”代表当前异步DNS查找。如果-n和-N参数同时存在,-n将被忽略。如果-n和-N参数都不写,则默认打开所有地址名字解析。
  • -d 将指定的数据按有关协议解包输出。如要将tcp8888端口的流量按http解包,应该写为“-dtcp.port==8888,http”。注意选择子和解包协议之间不能留空格。

6. 输出类

  • -w设置raw数据的输出文件。这个参数不设置,tshark将会把解码结果输出到stdout。“-w-”表示把raw输出到stdout。如果要把解码结果输出到文件,使用重定向“>”而不要-w参数。
  • -F设置输出raw数据的格式,默认为libpcap。“tshark-F”会列出所有支持的raw格式。
  • -V设置将解码结果的细节输出,否则解码结果仅显示一个packet一行的summary。
  • -x设置在解码输出结果中,每个packet后面以HEXdump的方式显示具体数据。
  • -T设置解码结果输出的格式,包括text,ps,psml和pdml,默认为text。
  • -t设置解码结果的时间格式。“ad”表示带日期的绝对时间,“a”表示不带日期的绝对时间,“r”表示从第一个包到现在的相对时间,“d”表示两个相邻包之间的增量时间(delta)。
  • -S在向raw文件输出的同时,将解码结果打印到控制台。
  • -l在处理每个包时即时刷新输出。
  • -X 扩展项。
  • -q设置安静的stdout输出(例如做统计时)
  • -z 设置统计参数。

7. 其它

  • -h 显示命令行帮助。
  • -v显示tshark的版本信息。
  • -o 重载选项。

在即时抓包模式(-r未设定)时的各参数功能一览:

在文件读取分析模式时的各参数功能一览:

出处:http://blog.sina.com.cn/s/blog_5919b8b10100064e.html

tshark简单使用-wireshark相关推荐

  1. wireshark解析信令tshark

    标题tshark(1) 手册页 https://www.wireshark.org/docs/man-pages/tshark.html tshark - Dump and analyze netwo ...

  2. wireshark常用选项与功能总结【10分钟成为抓包大师】

    原址 这段时间用wireshark比较多,所以想顺便给大家写个简单的wireshark教程出来,因为wireshark的入门抓包比较简单,选择网卡,然后直接start就开始抓包了,不需要做什么修改,但 ...

  3. wireshark插件 - 添加UI子树, 向子树上添加分析后的文本

    前言 要想用wireshark 插件做一个最简单的协议分析(不挎包),除了分析协议数据(纯C, 和wireshark无关),还要将分析的结果显示在wireshark树区和数据区, 只要能在树区添加子树 ...

  4. pyshark.tshark.tshark.TSharkNotFoundException: TShark not found.

    使用pyshark抓包或者分析包的时候,提示没有安装tshark: 1.安装wireshark,基本能解决问题. 2.如果已经安装过wireshark,但还是报错 linux--    pip ins ...

  5. Wireshark研究血族Bloodline手游聊天系统 - 初尝试

    血族Bloodline手游聊天系统的相关研究 目录 1. 介绍&起因 2. Fiddler初尝试 3. Wireshark初尝试 4. 总结 一.介绍&起因 ↶ (PS. 容我说先几句 ...

  6. wireshark 抓 蓝牙数据_如何使用Wireshark对本机进行抓包、流量分析

    本文仅用于讨论网络安全技术,以保护信息安全为目的,请勿用于非法用途! 如何使用Wireshark对本机进行抓包.流量分析-1.jpg (102.32 KB, 下载次数: 0) 2020-2-4 11: ...

  7. python网络数据包分析_Pyshark:使用了WirdShark的Python数据包解析工具(Tshark)

    Pyshark Pyshark是一款针对tshark的Python封装器,在Pyshark的帮助下,广大研究人员可以使用wireshark的解析器来进行Python数据包解析.扩展文档:[Pyshar ...

  8. python解包dump,tcpdump抓包及tshark解包方法介绍

    tshark是wireshark的命令行工具,经过shell命令抓取.解析报文.tcpdump是Linux系统下的抓包工具.wireshark和tcpdump都共同使用 libpcap做为其底层抓包的 ...

  9. python小数乘法_Polymorph:支持几乎所有现有协议的实时网络数据包操作框架

    Polymorph是一个用Python3编写的框架,其允许实时修改网络数据包,为用户提供对数据包内容的最大化控制.该框架旨在实现任何现有协议(包括没有公共规范的私有协议)的网络数据包的实时修改.除此之 ...

最新文章

  1. [Google Guava] 2.4-集合扩展工具类
  2. 数据中心基础架构 22 年演进
  3. python matplotlib.pyplot plt.ioff()函数(关闭交互模式用于阻塞程序,不让图片关闭)
  4. OpenCV向Facemark API添加新算法
  5. 使用Scalatra创建Scala WEB工程
  6. MySQL数据库SQL层级优化
  7. 【离散数学】命题逻辑符号化例题
  8. php发布文章时 未定义索引,php – 上传文件时未定义的索引
  9. Android下查看共享库依赖项
  10. MySQL5 使用概要
  11. mysql 联合索引底层结构_MySQL联合索引底层数据结构
  12. 五分钟使用WebStack构建个人网址导航
  13. OAuth2.0公钥私钥授权技术
  14. MacBookPro 装win7
  15. 数字电路基础_门电路
  16. 操作系统Windows【实验】文件复制
  17. canvas实战之酷炫背景动画(二)
  18. Spring源码深度解析(郝佳)-学习-Spring Boot体系原理
  19. 解锁三星bl锁有几种方法_手机ROOT之前的必备工作三星Bootloader解锁教程
  20. Impala入门笔记---比Hive强大

热门文章

  1. 直立智能车(平衡车)毕业论文
  2. LTspice基础教程-006.运行仿真与瞬态分析
  3. 中级前端工程师应该具备什么技术
  4. 《数据结构与算法》——树与二叉树之遍历总结
  5. FixedUpdate
  6. CDM技术分析和产品选型建议
  7. 中国最好的职业TOP10
  8. JVM常见命令之jstack
  9. 推荐一个java技术文章公众号
  10. 在ArcGIS上使用python(arcpy包)的入门教程