Tshark-Tcpdump

发布于:2025-07-21 ⋅ 阅读:(15) ⋅ 点赞:(0)
1. Tshark
	1.1 Tshark简介
	1.2 man Page
	1.3 Tshark时间显示
	1.4 统计 statistics
2. Tcpdump
	2.1 tcpdump -h
	2.2 包格式 
3. tshark VS tcpdump
	3.1 命令行捕获
	3.2 vs小结
	3.3 书籍介绍

1. Tshark

1.1 Tshark简介

TShark是基于终端的Wireshark,它是能够提供大量和Wireshark功能相同的数据包分析应用,但仅限于没有GUI的命令行界面。
如果你安装了Wireshark,那么你应该也安装了TShark,除非你在Wireshark安装过程中明确反选了安装TShark。
你可以输入以下命令确认TShark是否安装。
PS D:\Program Files\Wireshark> .\tshark.exe -v 
TShark (Wireshark) 4.4.7 (v4.4.7-0-g7980339b1630).
如果没安装TShark但你现在又想使用它,那么你可以直接回到 Wireshark的安装向导重新安装,并确保默认的TShark安装选项被勾 选。 

1.2 man Page

查看帮助命令
D:\Program Files\Wireshark> .\tshark.exe -h
查看手册页
以下是本机D盘安装目录下的路径
  • file:///D:/Program%20Files/Wireshark/tshark.html
  • file:///D:/Program%20Files/Wireshark/Wireshark%20User's%20Guide/AppToolstshark.html

1.3 Tshark时间显示

时间戳使用-t选项切换: 
 tshark –r packets.pcap –t ad 
注: Tcpdump不提供这样多层面时间戳格式的控制
Tshark中可用的时间显示格式
时间戳 >tshark –r packets.pcap –t ad 示例
a 包被捕获的绝对时间(在您的时区) 15:47:58.004669
ad 包被捕获的绝对时间(在您的时区)带日期 2015-10-09 15:47:58.004669
d 自之前捕获的数据包以来的增量(时差) 0.000140
dd 之前显示的数据包 0.000140
e 亿元时间(1970年1月1日以来的秒数) 1444420078.004669
r 第一个数据包和当前数据包之间的运行时间 0.000140
u 捕获数据包的绝对时间(UTC) 19:47:58.004669
ud 捕获数据包的绝对时间(UTC)带日期 2015-10-09 19:47:58.004669

1.4 统计 statistics

TShark的另一个有用的功能 (也是比Tcpdump先进的功能), 是它可以从捕获的文件中生成统计的一个子集。
统计示例
  • tshark -r packets.pcap –z conv,ip  //有关IP会话的信息的统计图 
  • tshark -r packets.pcap –z http,tree  //以表的形式来分解HTTP的请求和返回数据包
  • tshark -r http_google.pcap -z follow,tcp,ascii,0  //以ASCII形式将http_google.pcap的0号TCP流打印到 屏幕上
  • tshark –r packets.pcap –z follow,udp,ascii,192.168.1.5:23429,4.2.2.1:53  //指明端点和端口的UDP流 
查看所有可用的统计: tshark –z help 
.\tshark.exe -z help
  afp,srt
  ancp,tree
  ansi_a,bsmap
  ansi_a,dtap
  ansi_map
  asap,stat
  bacapp_instanceid,tree
  bacapp_ip,tree
  bacapp_objectid,tree
  bacapp_service,tree
  calcappprotocol,stat
  camel,counter
  camel,srt
  collectd,tree
  componentstatusprotocol,stat

conv,bluetooth
conv,bpv7
conv,dccp
conv,eth
conv,fc
conv,fddi
conv,ip //有关IP会话的信息
conv,ipv6
conv,ipx
conv,jxta
conv,ltp
conv,mptcp
conv,ncp
conv,opensafety
conv,rsvp
conv,sctp
conv,sll
conv,tcp
conv,tr
conv,udp
conv,usb
conv,wlan
conv,wpan
conv,zbee_nwk
  credentials
  dcerpc,srt
  dests,tree
  dhcp,stat
  diameter,avp
  diameter,srt
  dns,tree
  dns_qr,tree
  e2ap,tree

endpoints,bluetooth
endpoints,bpv7
endpoints,dccp
endpoints,eth
endpoints,fc
endpoints,fddi
endpoints,ip
endpoints,ipv6
endpoints,ipx
endpoints,jxta
endpoints,ltp
endpoints,mptcp
endpoints,ncp
endpoints,opensafety
endpoints,rsvp
endpoints,sctp
endpoints,sll
endpoints,tcp
endpoints,tr
endpoints,udp
endpoints,usb
endpoints,wlan //显示无线端点。
endpoints,wpan
endpoints,zbee_nwk
  enrp,stat
  expert //从捕获中显示专家信息(对话, 错误等)。
  f1ap,tree
  f5_tmm_dist,tree
  f5_virt_dist,tree
  fc,srt


flow,any
flow,icmp
flow,icmpv6
flow,lbm_uim
flow,tcp


follow,dccp
follow,http
follow,http2
follow,quic
follow,sip
follow,tcp
follow,tls
follow,udp
follow,usbcom
follow,websocket
  fractalgeneratorprotocol,stat
  gsm_a
gsm_a,bssmap
gsm_a,dtap_cc
gsm_a,dtap_gmm
gsm_a,dtap_mm
gsm_a,dtap_rr
gsm_a,dtap_sacch
gsm_a,dtap_sm
gsm_a,dtap_sms
gsm_a,dtap_ss
gsm_a,dtap_tp
  gsm_map,operation
  gtp,srt
  gtpv2,srt
  h225,counter
  h225_ras,rtd
  hart_ip,tree
  hosts
  hpfeeds,tree
  http,stat
  http,tree //显示关于HTTP请求和回应的统计。
  http2,tree
  http_req,tree //显示每个HTTP请求的统计。
  http_seq,tree
  http_srv,tree
  icmp,srt
  icmpv6,srt
  io,phs //分层级统计在捕获文件中找到的所有协议。
  io,stat
  ip_hosts,tree //显示并统计每个IP地址在所占流量的比率。
  ip_srcdst,tree
  ip_ttl,tree
  ipv6_dests,tree
  ipv6_hop,tree
  ipv6_hosts,tree
  ipv6_ptype,tree
  ipv6_srcdst,tree
  isup_msg,tree
  kerberos,srt
  lbmr_queue_ads_queue,tree
  lbmr_queue_ads_source,tree
  lbmr_queue_queries_queue,tree
  lbmr_queue_queries_receiver,tree
  lbmr_topic_ads_source,tree
  lbmr_topic_ads_topic,tree
  lbmr_topic_ads_transport,tree
  lbmr_topic_queries_pattern,tree
  lbmr_topic_queries_pattern_receiver,tree
  lbmr_topic_queries_receiver,tree
  lbmr_topic_queries_topic,tree
  ldap,srt
  ltp,tree
  mac-3gpp,stat
  megaco,rtd
  mgcp,rtd
  mtp3,msus
  ncp,srt
  nfsv4,srt
  ngap,tree
  npm,stat
  osmux,tree
  pfcp,srt
  pingpongprotocol,stat
  plen,tree
  proto,colinfo
  ptype,tree
  radius,rtd
  rlc-3gpp,stat
  rpc,programs
  rpc,srt
  rtp,streams
  rtsp,stat
  rtsp,tree
  sametime,tree
  scsi,srt
  sctp,stat
  sip,stat
  smb,sids
  smb,srt //显示关于Windows会话的SMB命令的统计。
  smb2,srt
  smpp_commands,tree
  snmp,srt
  someip_messages,tree
  someipsd_entries,tree
  ssprotocol,stat
  sv
  ucp_messages,tree
  wsp,stat

2. Tcpdump

  • 如果说Wireshark是世界上最流行的图形化数据包分析应用, 
  • 那么Tcpdump就是世界上最流行的命令行数据包分析应用。
Tcpdump基于Linux系统的工具, 支持Linux和macOS. 
如果想在Windows上使用Tcpdump,那么可以下载安装WinDump。 
在WinDump中一些Tcpdump的功能可能会缺失甚至可能会有安全漏洞。 

2.1 tcpdump -h

~$ man tcpdump
~$ tcpdump -h 

2.2 包格式

Tcpdump中每行也代表一个数据包,根据不同的协议来规范每行的输出格式。
因为Tcpdump不依赖于Wireshark的协议解析器,所以第7层的协议信息无法被解码。
这也是Tcpdump的最大限制之一。
取而代之的是,Tcpdump单行数据包只会根据传输层协议(TCP或UDP)进行解码。
  • TCP包使用以下格式:
[Timestamp] [Layer 3 Protocol]  [Source IP].[Source Port] > [Destination IP]. [Destination Port]:  [TCP Flags], [TCP Sequence Number], [TCP Acknowledgement Number],  [TCP Windows Size], [Data Length]
  • UDP包使用以下格式:
[Timestamp] [Layer 3 Protocol]  [Source IP].[Source Port] > [Destination IP]. [Destination Port]:  [Layer 4 Protocol], [Data Length]

3. tshark VS tcpdump

3.1 命令行捕获

操作 tshark (Windows) tcpdump (Linux, MacOS)
抓包 tshark sudo tcpdump
列出网卡 tshark -D ifconfig
指定网卡 tshark -i 1 sudo tcpdump -i eth0
保存 tshark –i 1 –w packets.pcap tcpdump –i eth0 –w packets.pcap
回读数据包 tshark –r packets.pcap tcpdump –r packets.pcap
限制显示数量 tshark –r packets.pcap –c10 tcpdump –r packets.pcap –c10
增加冗馀 tshark –r packets.pcap –V tcpdump –r packets.pcap –vvv
正常显示 tshark -r packets.pcap -c1 tcpdump -r packets.pcap -c1
冗余显示 tshark -r packets.pcap -V -c1 tcpdump -r packets.pcap -c1 -v
tcpdump -r packets.pcap -c1 -vv
tcpdump -r packets.pcap -c1 -vvv
ASCII, hex tshark –xr packets.pcap tcpdump –Xr packets.pcap
tcpdump –xr packets.pcap //hex
tcpdump –Xr packets.pcap //ascII
禁用名称解析 tshark –ni 1 tcpdump –nni eth1
仅启用传输层
端口的解析
tshark –i 1 –Nt tcpdump –ni eth1
-n会禁用IP解析,-nn禁用IP和端口解析
启用传输层
和MAC层
tshark –i 1 -Ntm  
捕获过滤器 tshark –ni 1 –w packets.pcap –f tcp port 80 tcpdump –nni eth0 –w packets.pcap 'tcp dst port 80'
显示捕获器 tshark –ni 1 –w packets.pcap –Y tcp.dstport == 80  
  tshark –r packets.pcap –Y tcp.dstport == 80 tcpdump –r packets.pcap 'tcp dst port 80'
另存为 读取→过滤→写入 tcpdump –r packets.pcap 'tcp dst port 80' –w http_packets.pcap
指派BPF
过滤器文件
  tcpdump –nni eth0 –F dns_servers.bpf
显示绝对时间 tshark –r packets.pcap –t ad Tcpdump不提供多层面时间戳格式的控制

3.2 vs小结

这些工具的使用方式都是类似的, 学会其中一个就能很快上手另一个
差别 tshark tcpdump WinDump
操作系统 Windows, Linux, macOS Linux, macOS WinDump: 是Tcpdump在Windows平台的发行版.
在WinDump中一些Tcpdump的功能可能会缺失甚至可能会有安全漏洞
时间格式 提供多层面时间戳格式的控制 标准时间戳
协议支持 提供丰富的第7层协议支持 对第7层的协议支持不足
分析功能 类似Wireshark的强大统计分析功能 不提供
补充 Windows系統下Wireshark的命令行版 虽然Tcpdump缺少图形特性,
但它处理海量数据时非常靠谱。
可用管道将输出重定向到其他命令,
比如Linux的sed 和awk。

3.3 书籍介绍

书名:Wireshark数据包分析实战(第3版)
ISBN:978-7-115-49431-3
著 [美] 克里斯•桑德斯(Chris Sanders)
译 诸葛建伟 陆宇翔 曾皓辰
本书在上一版的基础上针对Wireshark 2.0.5和IPv6进行了更新
本书从2015年底开始编写, 在2017年早期完成,总计历时一年半。
而在本书出版之日,距离本书第2版发布的时间已经有6年,距离第1版则长达10年之久。
额外内容, 书籍附带的演示数据包
下载本书的捕获文件(.zip)
(MD5校验和:C532A797958649D821BC2EDBC3A2DDD9)
ppa3ecaptures.zip的哈希值
MD5:C532A797958649D821BC2EDBC3A2DDD9
SHA1:7887C73BDB0F9BA1AF7FADBE01F1F0AAF2F2D5C6
SHA256:6EC7B9B0D1E88AE957D9B40FE9FD992316DD0619191FBA11582FC567D556C87E

网站公告

今日签到

点亮在社区的每一天
去签到