`
linyu19872008
  • 浏览: 281121 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

tshark命令

 
阅读更多

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

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

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

以下试验均基于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 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 重载选项。

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

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

分享到:
评论

相关推荐

    wireshark-tshark 命令详解

    ### Wireshark与tshark命令详解 #### 一、Wireshark简介 Wireshark是一款非常强大的网络数据包分析工具,前身名为Ethereal。2006年,由于商标问题,Ethereal的主要开发者Gerald Combs离开原团队加入CACE ...

    TShark命令中文注释.pdf

    TShark 命令中文注释 TShark 是 Wireshark 的一个命令行版本,用于捕获和分析网络数据包。下面是 TShark 命令的详细解释: 捕获接口选项 -i &lt;interface&gt;:设置捕获接口,默认为第一个非本地循环接口。用户可以...

    TShark命令中文注释.docx

    TShark命令中文注释 TShark是Wireshark的命令行版本,用于网络抓包和分析。下面是TShark命令的中文注释: 捕获接口选项 * `-i &lt;interface&gt;`:设置捕获接口,默认为第一个非本地循环接口。 * `-f &lt;capture filter&gt;...

    java中调用tshark命令行,解析数据包信息

    在实际操作中,你可能需要解压这个文件,然后使用解压后的文件作为Tshark命令的输入,例如指定数据包捕获文件进行离线分析。 总的来说,通过Java调用Tshark,我们可以灵活地在程序中集成网络数据包分析功能,从而...

    wireshark lua 插件 解析提取网络报文传输内容(文本,多媒体,等信息)

    4. 最好用tshark 命令读包。 tshark.exe -q -r 报文路径 注意: windows 下最好是不用的时候把 init.lua dofile&#40;DATA_DIR.."lua/robotV3_0/robot.lua"&#41; 这行注释掉。要不然会产生很多文件拖延文件打开速度 {...

    tshark ARM版本编译,使用说明

    在生成了 Makefile 之后,可以使用 make 命令来编译 tshark。编译过程可能需要一些时间,取决于机器的性能和编译的参数。 四、使用 tshark 编译完成后,可以使用 tshark 来捕获和分析网络数据包。tshark 提供了...

    linux上安装和使用wireshark.pdf

    1. 使用 tshark 命令捕获网络数据包 ``` tshark -f "udp port 1812" -i eth0 -w /tmp/capture.cap ``` 其中,-f 选项用于指定网络捕获过滤器,-i 选项用于指定接口,-w 选项用于指定捕获文件的保存路径。 2. 使用...

    数据包取证总结1

    6. **Tshark命令**:`Tshark`是Wireshark的命令行版本,可以用于数据包捕获和分析。在描述中提到的命令`Tshark -r out.pcap -T fields -e data &gt; out.txt`,用于从数据包中提取数据字段并写入文本文件,有助于查找...

    wireshark抓包数据提取

    例如,一个基本的Tshark命令可能如下: ```bash tshark -r capture.pcapng -T fields -e frame.number -e data -Y "tcp.len &gt; 0" ``` 这个命令做了以下几件事: 1. `-r capture.pcapng`:指定输入的捕获文件。 2. ...

    采集Mc接口IP信令数据的方法

    4. 使用tshark命令时,需要指定网络接口(如-tshark -i 3),目标文件(如-w d:\1.cap),以及文件的记录策略(如-b duration:1800和-a files:2),以便定期保存文件并防止数据丢失。 【注意事项与问题解决】 采集...

    linux下使用wireshark抓包

    本文将对 tshark 命令的各个选项进行详细说明,并提供相关的使用示例。 -a 该选项用于设置捕捉自动停止的条件。Wireshark 将在达到指定的条件时停止捕捉文件。该条件可以是 duration、filesize 或 files。这三个...

    Linux命令行抓包及包解析工具tshark(wireshark)使用实例解析

    ### Linux命令行抓包及包解析工具tshark(wireshark)使用实例解析 #### 一、引言 在日常运维或网络安全分析工作中,抓取网络数据包并对其进行解析是一项重要的技能。传统的做法是使用`tcpdump`来抓取原始网络数据包...

    Linux命令行抓包及包解析工具tshark(wireshark)使用实例解析.txt

    - 在CentOS系统上,可以通过`yum install -y wireshark`命令来安装Wireshark(含tshark)。 - 对于Ubuntu系统,则可以通过`apt-get install -y tshark`直接安装tshark。 #### 知识点二:实时打印当前HTTP URL - ...

    tshark源码分析程序流程图(VISIO)

    命令格式如:./tshark -c 200 并且,流程图中未详尽列出从Frame到应用层协议(HTTP)解析的层层调用关系,这一步可以在相关应用层协议的解析器函数打上断点(例如HTTP:b dissect_tcp_http),gdb模式下直接bt,看...

    tshark.zip

    一旦所有依赖都已满足,再次运行RPM安装命令,`tshark`应该就能成功安装了。安装完成后,你可以通过运行`tshark --version`来验证安装是否成功。 `tshark`的使用相当灵活,可以通过各种参数和过滤器来定制数据包...

    6.8 TShark 中的总结统计 - Wireshark 数据包分析实战(第 3 版) - 知乎书店1

    ### 6.8 TShark 中的总结统计 在Wireshark数据包分析实战(第3版)一书中,第六章第八节详细介绍了TShark工具中的总结统计...通过灵活运用TShark的各种命令,网络专业人员能够更加轻松地理解和处理复杂的网络环境。

    entrocap:使用tshark对PCAP文件进行熵计算

    在这个Python脚本中,`input.txt`是`tshark`命令生成的熵值列表,`calculate_entropy`函数计算每个数据包的熵,结果存储在`entropies`列表中。 在实际应用中,你可能需要进一步处理这些熵值,比如设置阈值来识别...

    ping_cap_set_proc报错分析.docx

    Ping 命令报错分析 - cap_set_proc 错误解决方案 Linux 权限控制机制中, capability 是一种基于进程的权限控制机制,它可以将传统的基于用户的权限控制机制进行细粒度的控制。Capability 机制可以控制进程的某些...

    6.3 捕获和保存流量 - Wireshark 数据包分析实战(第 3 版) - 知乎书店1

    此命令将启动 TShark 并开始捕获当前接口上的所有网络流量。捕获的数据将实时显示在终端窗口中。 **示例输出**: ``` 1 0.000000 172.16.16.128 -&gt; 74.125.95.104 TCP 66 1606 80 [Seq=0 Win=8192 Len=0 MSS=1460 ...

Global site tag (gtag.js) - Google Analytics