基本语法: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 filter expression)。抓包过滤表达式的写法雷同于tcpdump,可参考tcpdump man page的有关部分。
  • -s 设置每个抓包的大小,默认为65535,多于这个大小的数据将不会被程序记入内存、写入文件。(这个参数相当于tcpdump的-s,tcpdump默认抓包的大小仅为68)
  • -p 设置网络接口以非混合模式工作,即只关心和本机有关的流量。
  • -B 设置内核缓冲区大小,仅对windows有效。
  • -y 设置抓包的数据链路层协议,不设置则默认为-L找到的第一个协议,局域网一般是EN10MB等。
  • -L 列出本机支持的数据链路层协议,供-y参数使用。

2. 抓包停止条件

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

3. 文件输出控制

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

4. 文件输入

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

5. 处理类

  • -R 设置读取(显示)过滤表达式(read filter expression)。不符合此表达式的流量同样不会被写入文件。注意,读取(显示)过滤表达式的语法和底层相关的抓包过滤表达式语法不相同,它的语法表达要丰富得多,请参考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 将指定的数据按有关协议解包输出。如要将tcp 8888端口的流量按http解包,应该写为“-d tcp.port==8888,http”。注意选择子和解包协议之间不能留空格。

6. 输出类

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

7. 其它

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

tshark命令小结相关推荐

  1. MySQL数据库备份和还原的常用命令小结

    MySQL数据库备份和还原的常用命令小结,学习mysql的朋友可以参考下. 备份MySQL数据库的命令 mysqldump -hhostname -uusername -ppassword datab ...

  2. linux 查询注册服务,window下注册服务的命令小结

    1. 描述:     SC 是用于与服务控制管理器通信的命令行程序 . 用法: sc [command] [service name] ... 选项 的格式为 可以键入 "sc [comma ...

  3. sed与awk命令小结

    1.sed命令小结 Sed是一个非交互式文本编辑器,它可对文本文件和标准输入进行编辑,标准输入可以是来自键盘输入.文件重定向.字符串.变量,甚至来自管道的文本.Sed从文本的一个文本行或标准输入中读取 ...

  4. 计算机基础(十):git仓库管理命令小结

    git仓库管理命令小结 git branch                           获取当前分支仓库 git status                            查看当前 ...

  5. Linux 系统维护命令小结

    Linux 系统维护命令小结 工具 功能描述 uptime 系统平均负载率 dmesg 硬件/系统信息 top 进程进行状态 iostat CPU和磁盘平均使用率 vmstat 系统运行状态 sar ...

  6. [Window] Windows批处理(cmd/bat)常用命令小结

    目录 Windows批处理(cmd/bat)常用命令小结 什么是批处理? 批处理命令简介 批处理符号简介 常用DOS命令 Windows Batch 常用命令 Windows批处理(cmd/bat)常 ...

  7. Linux常用命令小结(间歇性更新纠正)

    Linux的常用命令小结 参考:全文是关于根据菜鸟教程."兄弟连细说Linux"等教程资料学习的部分知识点记录. ssh 端口:22 ftp 端口:20(用于传输数据) 21(用于 ...

  8. LInux 项目二命令总结,linux项目管理常用命令小结

    当前位置:我的异常网» 项目管理 » linux项目管理常用命令小结 linux项目管理常用命令小结 www.myexceptions.net  网友分享于:2015-08-26  浏览:13次 li ...

  9. 在linux下nice用法,Linux下nice/renice命令小结

    1. nice命令 内核根据进程的nice值决定进程需要多少处理器时间. nice值的取值范围是是: -20到20. 一个具有-20 的 nice 值的进程有很高的优先级. 一个 nice 值为 20 ...

最新文章

  1. php 的opcode缓存apc以及其安装
  2. php $interval,如何在PHP中使用setInterval?
  3. python3精要(4)-python数字与表达式1
  4. 使用jquery解析xml
  5. threejs相机和渲染器
  6. qt在visual studio 2015下的使用
  7. Python3 爬虫之 Scrapy 核心功能实现(二)
  8. 一款开源且功能强大的C#甘特图控件.NET Winforms Gantt Chart Control
  9. C++中类的继承和组合
  10. silverlight中datagrid数据到处excel
  11. MacOS iNode客户端连接SSL
  12. Audition人声美化
  13. 开关稳压集成电路电源
  14. 无法打开计算机桌面图标,桌面图标打不开如何修复?桌面图标无法打开的处理方法...
  15. Caused by: java.lang.IllegalStateException: No ServletContext set
  16. 比较两个路径的几种方式
  17. 批量删除github工程仓库的办法
  18. 电脑影响,重装系统对电脑有什么影响,教您经常重装系统对电脑有什么影响
  19. AI TIME走进深圳大学城
  20. JavaScript - 停止计时器

热门文章

  1. SWFObject.js入门
  2. 单片机很好玩 ,制作呼吸灯(转载)
  3. 汉画轩区块链技术应用智慧酒店提升舒适度节能成本
  4. Commvault发布横向扩展一体机 矛头对准Rubrik和Cohesity
  5. Scrapy爬虫框架视频学习
  6. nginx重启报找不到nginx.pid的解决方法
  7. 串联谐振耐压试验装置技术参数和特点,如何选择
  8. 关于object对象转换为int类型
  9. useLocalStorage
  10. 跨站脚本攻击实例解析