tshark命令详解

网络抓包,分析工具。wireshark 的 Linux命令行工具。

tshark option

-i 设置抓包的网络接口,不设置则默认为第一个非自环接口。
-D 列出当前存在的网络接口。在不了解OS所控制的网络设备时,一般先用“tshark -D”查看网络接口的编号以供-i参数使用。
-f 设定抓包过滤表达式(capture filter expression)。抓包过滤表达式的写法雷同于tcpdump,可参考tcpdump man page的有关部分。
-s 设置每个抓包的大小,默认为65535,多于这个大小的数据将不会被程序记入内存、写入文件。(这个参数相当于tcpdump的-s,tcpdump默认抓包的大小仅为68)
-c 抓指定个包后终止
-a 终止条件 duration:NUM - stop after NUM seconds
          filesize:NUM - stop this file after NUM KBfiles:NUM - stop after NUM files
-w 设置raw数据的输出文件。这个参数不设置,tshark将会把解码结果输出到stdout。“-w-”表示把raw输出到stdout。如果要把解码结果输出到文件,使用重定向“>”而不要-w参数。
-r 设置tshark分析的输入文件。tshark既可以抓取分析即时的网络流量,又可以分析dump在文件中的数据。-r不能是命名管道和标准输入。
-R 设置读取过滤表达式(read filter expression)。不符合此表达式的流量同样不会被写入文件。注意,读取(显示)过滤表达式的语法和底层相关的抓包过滤表达式语法不相同,它的语法表达要丰富得多,请参考http://www.ethereal.com/docs/dfref/和http://www.ethereal.com/docs/man-pages/ethereal-filter.4.html。类似于抓包过滤表达式,在命令行使用时最好将它们quote起来。-Y (显示)过滤。
-T 设置解码结果输出的格式,包括fileds,text,ps,psml和pdml,默认为text。
-E 配合-T使用,制定输出格式,分隔符等。
-t 设置解码结果的时间格式。“ad”表示带日期的绝对时间,“a”表示不带日期的绝对时间,“r”表示从第一个包到现在的相对时间,“d”表示两个相邻包之间的增量时间(delta)。
-q 设置安静的stdout输出(例如做统计时)
-z 设置统计参数。
-p 设置网络接口以非混合模式工作,即只关心和本机有关的流量。
-B 设置内核缓冲区大小,仅对windows有效。
-y 设置抓包的数据链路层协议,不设置则默认为-L找到的第一个协议,局域网一般是EN10MB等。
-L 列出本机支持的数据链路层协议,供-y参数使用。
-n 禁止所有地址名字解析(默认为允许所有)。
-N 启用某一层的地址名字解析。“m”代表MAC层,“n”代表网络层,“t”代表传输层,“C”代表当前异步DNS查找。如果-n和-N参数同时存在,-n将被忽略。如果-n和-N参数都不写,则默认打开所有地址名字解析。
-d 将指定的数据按有关协议解包输出。如要将tcp 8888端口的流量按http解包,应该写为“-d tcp.port==8888,http”。注意解包协议之间不能留空格。
-F 设置输出raw数据的格式,默认为libpcap。“tshark -F”会列出所有支持的raw格式。
-V 设置将解码结果的细节输出,否则解码结果仅显示一个packet一行的summary。
-x 设置在解码输出结果中,每个packet后面以HEX dump的方式显示具体数据。
-S 在向raw文件输出的同时,将解码结果打印到控制台。
-l 在处理每个包时即时刷新输出。
-X 扩展项。
-h 显示命令行帮助。
-v 显示tshark的版本信息。
-o 重载选项。

tshark filter field reference

tcp protocol fields

mysql protocol fields

http protocol fields

memcache protocol fields

Java RMI fields

RSYNC File Synchroniser protocol fields

thrift protocol fields

amqp(eg .RabbitMQ) protocol fields

Mongo Wire Protocol (mongoDB) fields

fastcgi,udp,snmp,ip,rsync,ssh,ssl,json etc.


capture Filters reference

pcap filter reference

Example

ip 报文

tcp 报文

(tcp dst port 135 or tcp dst port 4444 or udp dst port 69)

协议为tcp 目标端口为135或者444 或者 udp目标端口69的数据包;

(((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)<<2)) != 0)’

过滤数据不为空的数据包;
ip[2:2] ip报文总长度
((ip[0]&0xf)<<2)) :ip首部长度
((tcp[12]&0xf0)<<2)) tcp 首部长度

more example

port 53:抓取发到/来自端口53的UDP/TCP数据流(典型是DNS数据流)
not port 53:抓取除了发到/来自端口53以外的UDP/TCP数据流
port 80:抓取发到/来自端口80的UDP/TCP数据流(典型是HTTP数据流)
udp port 67:抓取发到/来自端口67的UDP数据流(典型是DHCP据流)
tcp port 21:抓取发到/来自端口21的TCP数据流(典型是FTP命令通道)
portrange 1-80:抓取发到/来自端口1-80的所有UDP/TCP数据流
tcp portrange 1-80:抓取发到/来自端口1-80的所有TCP数据流
ip broadcast:抓取广播报文
ip multicast:抓取多播报文
dst host ff02::1:抓取到IPv6多播地址所有主机的数据流
dst host ff02::2:抓取到IPv6多播地址所有路由器的数据流
net 10.3.0.0/16:抓取网络10.3.0.0上发到/来自所有主机的数据流(16表示长度)
net 10.3.0.0 mask 255.255.0.0:与之前的过滤结果相同
ip[2:2]==<number>:ip报文大小
ip[8]==<number>:TTL(Time to Live)值
ip[9]==<number>:协议值
src host 10.3.1.1:抓取来自10.3.1.1的数据流
dst host 10.3.1.1:抓取发到10.3.1.1的数据流
host 10.3.1.1:抓取发到/来自10.3.1.1的数据流
ether dst 02:0A:42:23:41:AC:抓取发到02:0A:42:23:41:AC的数据流
not ether host 00:08:15:00:08:15:抓取除了发到/来自00:08:15:00:08:15以外的所有数据流
ether broadcast或ether dst ff:ff:ff:ff:ff:ff:抓取广播报文
ether multicast:多播报文

tshark statistic

  • tshark -i enp0s31f6 -qz http,stat, #统计http信息
  • tshark -i enp0s31f6 -t ad -z io,stat,1,ip.addr==1.2.3.4 #生成一个与 host 1.2.3.4.一秒内的统计信息
  • tshark -i enp0s31f6 -q -n -t ad -z io,stat,10,”COUNT(tcp.flags)tcp.flags==0x02”,”COUNT(tcp.flags)tcp.flags==0x12” #10秒为周期过滤TCP三次握手的数据包信息
  • tshark -i enp0s31f6 -qz bootp,stat #DHCP 统计信息
  • tshark -i enp0s31f6 -qz endpoints,[ip,tcp…] 该协议的接收,传输信息统计
  • tshark -i enp0s31f6 -n -t ad -z follow,tcp,ascii,10.249.9.18:22,10.249.7.37:22 # 两个节点间的具体 content
  • tshark -z # 提示 统计的具体用法 ,或 man tshark

Usages Example

1. 实时打印当前http请求的url
tshark -s 512 -i eth0 -n -f ‘tcp dst port 80’ -Y ‘http.host and http.request.uri’ -T fields -E separator=’#’ -E quote=d -e http.host -e http.request.uri -l | tr -d ‘\t’
2. 实时打印当前mysql查询语句 和 返回数据
tshark -i eth0 -n -f ‘tcp dst port 3306 or tcp src port 23456’ -Y ‘mysql.query’ -T fields -e mysql.query -e mysql.row.text
3. 实时打印当前memcached信息
sudo tshark -i em1 -n -Y ‘memcache’
4. 实时打印当前RabbitMQ信息
sudo tshark -i em1 -n -Y ‘amqp’
5. 实时打印当前MongoDB信息
tshark -i em1 -n -f ‘port mongoDBPort’ -Y ‘mongo’
5. 实时打印所有信息
sudo tshark -i enp0s31f6 -f ‘dst host 10.249.7.99’ -s 0 -l -w - |strings

tshark抓包小结相关推荐

  1. wireshark tshark抓包筛选并存入文件 Centos linux 命令行抓包 yum安装wireshark

    借鉴:https://www.cnblogs.com/happyday56/p/10361294.html 借鉴:https://www.codetd.com/article/720897 借鉴:ht ...

  2. tshark/wireshark抓包小结

    全栈工程师开发手册 (作者:栾鹏) 架构系列文章 tshark命令详解 网络抓包,分析工具.tshark 的 Linux命令行工具. 安装 yum install tshark tshark opti ...

  3. tshark mysql_使用tshark抓包分析http请求

    前言: 在Linux下,当我们需要抓取网络数据包分析时,通常是使用工具tcpdump.但是,有时我们需要将抓取的数据包保存在一个文件中,已备以后分析.而tcpdump保存的文件是二进制的文件,使用ca ...

  4. 「TShark学习」TShark抓包笔记

    一.捕获和保存流量 列出当前所有可用的网卡:-D tshark -D 只抓取某一个网卡的流量:-i 网卡名 tshark -i en0 读/写文件:-r 文件名/-w 文件名 tshark -i en ...

  5. tshark 网络抓包监控工具

    tshark - Dump and analyze network traffic 一.REF https://www.wireshark.org/docs/man-pages/tshark.html ...

  6. 关于fi dd ler 手机抓包 网卡地址地址_linux 抓包工具tcpdump和tshark

    yum -y install tcpdump 有时候我们发现网卡流量很高,可能超出你们平时的预期,比如说我们就买了10m宽带,平时的话就跑个5M 6M,今天实际上跑满了 很明显有波动,这个时候你肯定想 ...

  7. free,ps,抓包,网络状态

    free 查看内存 [root@binbinlinux ~]# free -h total used free shared buffers cached Mem: 1.8G 126M 1.7G 24 ...

  8. Linux统计进程网络,查看磁盘io、内存free、系统进程ps、网络状态netstat、Linux抓包tcpdump...

    查看磁盘io性能状态 iostat -x 查看磁盘使用(安装包与sar的安装包一起) 主要查看%util [root@shu-test ~]# iostat -x Linux 3.10.0-693.e ...

  9. 网络常用命令----抓包,路由

    文章目录 ping命令 常用操作 1.ifconfig命令 2.route命令 启用route服务 2.1临时配置 2.2永久生效route路由 3.netstat命令 4.ip命令 5.ss命令 6 ...

最新文章

  1. 医学顶刊BMJ打脸谷歌:AI取代医生检测乳腺癌还远着呢
  2. 谷歌扔下芯片核弹:开源全球首个可制造的PDK,免费帮有缘人实现造芯梦想
  3. ehcache缓存原理_贼厉害,手撸的 SpringBoot缓存系统,性能杠杠的!
  4. 利用序列化进行文件读写
  5. QT的QFontDialog类的使用
  6. python标准库有pickle_Python标准库05 存储对象 (pickle包,cPickle包)-阿里云开发者社区...
  7. string字符串内容倒叙_面试官:string、stringbuffer和stringbuilder都不会,我招你干什么?...
  8. python3面向对象_Python3面向对象编程
  9. 你写得API接口代码真是一坨屎,难道不能对返回格式统一处理一下吗?
  10. Java知识总结,不止为了秋招(下)!!!
  11. Pytorch下的卷积和池化
  12. 腾讯云服务器手动建立WordPress个人站点Windows系统教程-Unirech腾讯云国际版代充
  13. uniapp做自己的启动页
  14. 微信开发之微信环境h5页面登录实现流程
  15. u盘中毒数据怎么才能恢复
  16. 云原生在京东丨揭秘五大云原生项目在京东的落地实践
  17. mongo按季度统计_2020年第一季度|我国DDoS攻击资源季度分析报告
  18. IEEE论文参考文献格式
  19. 解决wifi连接错误:无法连接到这个网络
  20. QoE是什么?QoE对视频流供应商的重要性

热门文章

  1. 禁用键盘快捷键_如何在Windows中使用键盘快捷键临时禁用键盘
  2. 《数据仓库与数据挖掘教程》ch01绪论 章节整理
  3. 数据结构:关于时间复杂度的例题计算
  4. karaf学习 (2)
  5. 机器学习系列(三)——目标函数、损失函数以及代价函数
  6. 组合数求解与(扩展)卢卡斯定理
  7. Dialog和DialogActivity
  8. 淘宝等各平台API接口,执行item_get - 获得商品详情信息
  9. Python导入arcpy包出现“ImportError: No module named arcpy”
  10. 如何将深度学习模型加载到android环境中