tshark常用的命令行参数例子
获取抓取设备接口抓取设备上的数据包(单一设备, 多设备, 所有设备)配置抓取过滤器(capture filter)抓取数据包的详细数据抓取的数据包写入到文件中配置显示过滤器分析抓取到的数据包文件(-R, -2, -Y的用法及区别)导出json格式到文件中, 方便后续分析
tshark是命令行式的wireshark
| 参数 | 描述 |
|---|---|
| -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"−2−Y"{display filter2}” |
| -T fields|json|pdml|text | 可以指定输出格式, xml, json 之类的增加可读性, 也可以配合-e, 输出一些你关注的字段, 默认是text格式 |
熟悉这几个命令基本可以应付大部分使用场景了, 接下来用几个例子演示下(下面的例子是用windows cmd来操作演示的, 需要管理员权限运行)
例子 获取抓取设备接口tshark -D
########输出##############
1. DeviceNPF_{123} (本地连接* 14)
2. DeviceNPF_{456} (本地连接* 13)
3. DeviceNPF_{789} (WLAN)
4. DeviceNPF_{101112} (以太网) #这个设备是在使用的网卡, 有流量的, 抓包抓取这个设备
5. DeviceNPF_Loopback (Adapter for loopback traffic capture)
抓取设备上的数据包(单一设备, 多设备, 所有设备)
# 抓取以太网上的数据包
tshark -i DeviceNPF_{101112}
#抓取以太网和回路地址上数据包
tshark -i DeviceNPF_{101112} -i DeviceNPF_Loopback
# 抓取所有设备上的数据包
tshark -i any
配置抓取过滤器(capture filter)
这个和配置wireshark中的抓取过滤器配置语法一样
# 抓取10.221.80.178的所有数据包
tshark -i DeviceNPF_{101112} -f "host 10.221.80.178"
抓取数据包的详细数据
# 抓取10.221.80.178的所有数据包, -V打开抓取详细的数据包数据
tshark -i DeviceNPF_{101112} -f "host 10.221.80.178" -V
抓取的数据包写入到文件中
#将抓取到的数据包数据保存到文件 D:/test.pcap中
#这个文件可以导入wireshark中查看分析
#也可以用 tshark分析
tshark -i DeviceNPF_{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



