使用Tshark转换为CSV时部分字段缺失问题求助
解决Tshark 4.0.4导出CSV时_ws.col.Len和_ws.col.Info字段缺失的问题
核心问题
_ws.col.*是Wireshark GUI生成的衍生显示字段,并非底层捕获的原生字段。其中_ws.col.Len和_ws.col.Info依赖GUI的实时解析逻辑,在纯命令行的Tshark环境中无法通过-e参数直接调用,导致输出为空。
可行解决方案
直接使用原生协议字段替代这些衍生字段,既保证数据准确性,又适配大流量场景的高效处理:
修正后的命令
tshark -N n -T fields -i ethernet -e frame.number -e frame.time -e ip.src -e ip.dst -e frame.protocols -e frame.len -e frame.comment -E header=y -E separator=, > C:\DataCapture\capture.csv
字段映射说明
| 原衍生字段 | 替代原生字段 | 说明 |
|---|---|---|
_ws.col.Time | frame.time | 原生时间戳字段,格式与GUI显示完全一致 |
_ws.col.Len | frame.len | 帧的总字节长度,与GUI的Len字段值完全匹配 |
_ws.col.Info | frame.comment | 包含协议摘要信息;若需更精准的协议内容,可指定具体字段(如dns.qry.name、http.request.method) |
_ws.col.Proto | frame.protocols | 显示完整协议链(如eth:ip:udp:mdns),比GUI的Proto字段更详尽 |
大流量场景优化
- 过滤无关流量:添加
-f "tcp or udp"(或其他协议过滤规则),减少输出数据量,降低CPU和磁盘占用 - 分片捕获:使用
-b filesize:10000参数,每10MB生成一个捕获文件,避免单文件过大难以处理 - 禁用冗余解析:保留
-N n参数,禁用名称解析,提升捕获速度
验证示例
执行修正命令后,输出CSV示例:
frame.number,frame.time,ip.src,ip.dst,frame.protocols,frame.len,frame.comment 1,Jul 26,2024 14:35:22.123456,192.168.0.104,224.0.0.251,eth:ip:udp:mdns,242,Standard query 0x0000 A local.
内容的提问来源于stack exchange,提问作者Ali
相关产品推荐
相关产品推荐

