Wireshark 技巧75 条

Wireshark 导出 CSV

File → Export Packet Dissections → As CSV 把列表字段导出表格,便于用 Excel/脚本做二次统计与出报告。

导出 CSV 是干什么的

Export Packet Dissections 把当前文件的报文按列表可见的列导出成表格文件,交给表格软件或脚本做二次统计。它导出的是「你已经设置好的列」,所以列的选择与顺序直接决定导出的内容:想统计 URI 分布就先加 URI 列,想算响应时间就先加时间差列。对需要出报告、做分布统计或与业务数据对齐的场景,它比人眼看包更可控。

基本信息

适用平台Wireshark 桌面版;命令行可用 tshark -T fields 实现同样效果
入口File → Export Packet Dissections → As CSV…
导出范围可选全部报文、已显示报文、指定编号区间
内容范围仅包含列表当前可见的列

典型使用场景

  • 统计接口调用量或响应码分布并出图表
  • 把报文时间线交给脚本,做批量延迟计算
  • 抽取某一批会话的关键字段,与业务日志按时间对齐
  • 为故障报告附一份可复核的明细清单
  • 把长文件精简成关注列,降低他人复核成本
  • 按区间导出,交给同事做分段分析

操作路径

操作路径
# 先设置好关注列(如 Time/Address/Protocol/http.request.uri)
# File → Export Packet Dissections → As CSV
# 选择 Packet Range 与是否含列标题
# 需要多字段、复杂过滤时改用命令行方式:
tshark -r http.pcapng -Y 'http.request' -T fields \
  -e frame.time -e ip.src -e http.request.method -e http.request.uri

导出选项逐项读法

选项作用建议
列选择决定导出哪些字段先按分析问题精简,避免导出宽表
列顺序决定 CSV 的列顺序导出前调整好,后期改序成本更高
Packet Range决定导出哪些报文大文件先过滤到必要范围再导出
列标题是否输出表头行给表格软件用时保留表头更清晰
CSV 只含列表可见列的内容;需要导出解析树里的深层字段,用 tshark -T fields 指定字段名更可靠。
导出体积与报文数成正比,长时抓包文件建议先用显示过滤器收敛范围,再执行导出。

易错点

  • 忽略列顺序:CSV 的列序跟随界面布局,导出后才发现顺序不对只能重来
  • 直接导出整个大文件:文件体积与后续处理成本都会失控,应先按条件过滤
  • 把 CSV 当完整证据:导出的只是可见列,深层字段与原始字节并未包含在内
  • 表头缺失后二次处理困难:脚本解析前先确认是否输出标题行,否则首行数据会被当作字段名

数据来源与参考

  • Wireshark User's Guide(导出)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌