如何切割tcpdump/wireshark抓取的数据包

editcap 是 Wireshark 自带的一个非常强大的命令行工具,专门用于切分、转换和过滤 pcap/pcapng 抓包文件

如果你想切割大文件,主要有两种常用方式:按数据包数量”切割按时间间隔”切割


1. 按数据包数量切割

如果你想把一个大 pcap 文件拆分成数个包含固定数据包数量的小文件,可以使用 -c 参数(count)。

1
editcap -c <每个文件的包数量> <原始文件.pcap> <输出文件名>

示例:

假设你有一个很大的 traffic.pcap,想把它每 10,000 个数据包切成一个小文件:

1
editcap -c 10000 traffic.pcap split_file.pcap

输出结果:
editcap 会自动在输出文件名后面加上序号,生成 split_file_00000_20260610133601.pcapsplit_file_00001_20260610134000.pcap 等文件(后缀会带有时间戳和序号)。


2. 按时间间隔切割(推荐)

如果你想根据时间段来拆分文件,比如每隔 1 小时(3600 秒)保存一个文件,可以使用 -i 参数(interval)。

1
editcap -i <时间间隔(秒)> <原始文件.pcap> <输出文件名前缀>

示例:

每隔 300 秒(5 分钟)切分一次文件:

1
2
3
4
# 5min
editcap -i 300 traffic.pcap split_time.pcap
# 10min
editcap -i 600 traffic.pcap st.pcap

3. 提取特定时间段的流量 (裁剪)

如果你不是想均匀切割,而是想提取某一个特定时间段的流量,可以使用 -A(开始时间)和 -B(结束时间)参数。

注意: 时间格式必须是 YYYY-MM-DD HH:MM:SS

1
editcap -A "YYYY-MM-DD HH:MM:SS" -B "YYYY-MM-DD HH:MM:SS" <原始文件.pcap> <输出文件.pcap>

示例:

提取 2026 年 6 月 10 日 下午 13:00:00 到 13:15:00 之间的流量:

1
editcap -A "2026-06-10 13:00:00" -B "2026-06-10 13:15:00" traffic.pcap target_time.pcap

4. 按指定序号范围提取 (指定包切割)

如果你只想保留文件中的某一段数据包(例如第 1 到第 500 个包),直接在命令最后加上序号范围即可。

1
editcap <原始文件.pcap> <输出文件.pcap> <包范围>

示例:

只保留 traffic.pcap 中的第 1 到第 500 个数据包:

1
editcap traffic.pcap selected_packets.pcap 1-500