wireshark 之 tshark常规用法

文章目录

  • tshark常用的命令行参数
  • 例子
    • 获取抓取设备接口
    • 抓取设备上的数据包(单一设备, 多设备, 所有设备)
    • 配置抓取过滤器(capture filter)
    • 抓取数据包的详细数据
    • 抓取的数据包写入到文件中
    • 配置显示过滤器分析抓取到的数据包文件(-R, -2, -Y的用法及区别)
    • 导出json格式到文件中, 方便后续分析

tshark是命令行式的wireshark

tshark常用的命令行参数

参数 描述
-D 获取设备列表
-i 抓取的设备接口idx
-f “${capture filter}” 对应wireshark中的捕获过滤表达式的配置
-w 将抓包数据保存到文件中,
这个文件可以导入wireshark中查看分析, 也可以用tshark读取分析
“-“ 是输出到标准输出设备
-r 读取抓包后的数据文件,“-” 是从标准输入读取数据
-V 抓取包的详细数据,默认抓取的数据包简略数据
加上这个参数, 就能抓取到包的详细数据
-s 抓取包的长度设置, 如果只关注包的头部信息时候, 这个指令很有用
-Y “${display filter}” 显示过滤配置, 跟wireshark中显示窗口中过滤配置一样, 适用一次过滤
-R ${display filter} -2 也是显示过滤配置, 但是适用于俩次过滤配置时使用,
这个在大文件分析的时候需要俩次显示过滤时候能提高一些速度
-R “ d i s p l a y f i l t e r 1 " − 2 − Y " {display filter1}" -2 -Y " displayfilter1"2Y"{display filter2}”
-T fields|json|pdml|text 可以指定输出格式, xml, json 之类的增加可读性,
也可以配合-e, 输出一些你关注的字段, 默认是text格式

熟悉这几个命令基本可以应付大部分使用场景了, 接下来用几个例子演示下(下面的例子是用windows cmd来操作演示的, 需要管理员权限运行)

例子

获取抓取设备接口

tshark -D

########输出##############
1. \Device\NPF_{123} (本地连接* 14)
2. \Device\NPF_{456} (本地连接* 13)
3. \Device\NPF_{789} (WLAN)
4. \Device\NPF_{101112} (以太网)              #这个设备是在使用的网卡, 有流量的, 抓包抓取这个设备
5. \Device\NPF_Loopback (Adapter for loopback traffic capture)

抓取设备上的数据包(单一设备, 多设备, 所有设备)

# 抓取以太网上的数据包
tshark -i \Device\NPF_{101112}

#抓取以太网和回路地址上数据包
tshark -i \Device\NPF_{101112} -i \Device\NPF_Loopback

# 抓取所有设备上的数据包
tshark -i any

配置抓取过滤器(capture filter)

这个和配置wireshark中的抓取过滤器配置语法一样

# 抓取10.221.80.178的所有数据包
tshark -i \Device\NPF_{101112} -f "host 10.221.80.178"

抓取数据包的详细数据

# 抓取10.221.80.178的所有数据包, -V打开抓取详细的数据包数据
tshark -i \Device\NPF_{101112} -f "host 10.221.80.178" -V

抓取的数据包写入到文件中

#将抓取到的数据包数据保存到文件 D:/test.pcap中
#这个文件可以导入wireshark中查看分析
#也可以用 tshark分析
tshark -i \Device\NPF_{101112} -f "host 10.221.80.178" -V -w D:/test.pcap

#打开另一个cmd窗口, ping下10.221.80.178
ping 10.221.80.178 -n 50

配置显示过滤器分析抓取到的数据包文件(-R, -2, -Y的用法及区别)

# 查看下 20th icmp frame的包
tshark -r D:/test.pcap -Y "icmp and frame.number eq 20"

# 俩次过滤分析方法, 只是为了演示, 这个用一次过滤就行, 和上一个语句的效果是一样的
tshark -r D:/test.pcap -R "icmp" -2 -Y "frame.number eq 20"

# 也可以通过管道符的方式分析俩次, 也可以得到相同结果, 但是这种方式不如用 -R -2分析效率高, 也就是数据量多的时候速度慢
tshark -r D:/test.pcap -Y "icmp" -w - | tshark -r - -Y "frame.number eq 20"

导出json格式到文件中, 方便后续分析

# 注意这里用输出重定向方式将结果输出到文件中, 而不是用-w参数
tshark -r D:/test.pcap -Y "icmp and frame.number eq 20" -T json > test.json

你可能感兴趣的:(wireshark,wireshark,网络)