Linux editcap 命令 - 编辑和转换 pcap 文件
介绍
editcap 是 Wireshark 工具集中的一个命令,用于编辑 pcap 文件(网络捕获文件),包括截断、拆分、过滤等操作。这个命令允许你对捕获的网络流量进行一些基本的编辑,以便更好地分析和处理。
使用前请确保你的系统上已经安装 Wireshark 工具,如果未安装,可以参考下面安装方法:
- Ubuntu
- CentOS/RHEL
sudo apt install wireshark
sudo yum install wireshark
语法:
editcap [options] ... <infile> <outfile> [ <packet#>[-<packet#>] ... ]
选项:
-r
:保留选定的数据包(默认是删除它们)。-A <start time>
:只读取时间戳晚于(或等于)给定时间的数据包。时间格式为YYYY-MM-DDThh:mm:ss[.nnnnnnnnn][Z|+-hh:mm]
。-B <stop time>
:只读取时间戳早于给定时间的数据包。时间格式同上。-s <snaplen>
:将每个数据包截断为最大值<snaplen>
字节数据。-C [offset:]<choplen>
:将每个数据包切割<choplen>
字节。正值在数据包开始处截断,负值在数据包结尾处截断。如果可选偏移量位于长度之前,则截断的字节将从该值开始偏移。正偏移量是从数据包开始处开始的,负偏移量是从数据包结束处开始的。你可以多次使用此选项,允许数据包内最多有 2 个斩波区域(chopping regions),前提是至少 1 个 choplen 为正值,至少 1 个为负值。-c <packets per file>
:根据统一的数据包计数将数据包输出拆分到不同的文件,每个文件最多为<packets per file>
。-i <seconds per file>
:根据统一的时间间隔将数据包输出拆分到不同的文件,每个文件的最大时间间隔为<seconds per file>
。-F <capture type>
:设置输出文件类型,默认为 pcapng。空的-F
选项将列出文件类型。-T <encap type>
:设置输出文件封装类型,默认与输入文件相同。空的-T
选项将列出封装类型。
示例
假设有个 30 秒的 pcap 文件 2023-09-26-14-31-42-30s.pcap,我们先用 capinfos
命令查看它的起始和结束时间:
$ capinfos -a 2023-09-26-14-31-42-30s.pcap
File name: 2023-09-26-14-31-42-30s.pcap
First packet time: 2023-09-26 14:33:25.555011
$ capinfos -e 2023-09-26-14-31-42-30s.pcap
File name: 2023-09-26-14-31-42-30s.pcap
Last packet time: 2023-09-26 14:33:55.651338
现在,我们前后分别偏移 10 秒,即截取中间的 10 秒数据:
editcap -A 2023-09-26T14:33:35 -B 2023-09-26T14:33:45 2023-09-26-14-31-42-30s.pcap 2023-09-26-14-31-42-10s.pcap
按 1000 个包为间隔将 pcap 文件拆分成多个文件:
editcap -c 1000 2023-09-26-14-31-42-30s.pcap output.pcap
此时会在当前目录生成许多 output_00*
开头的 pcap 文件,例如 output_00214_20230926143347.pcap。