tcpdump抓取数据包如何切割
10GB 以上的 pcap/cap 文件,Wireshark 直接打开会出现:
- 内存暴涨
- UI 卡死
- 索引时间很长
- 过滤器响应慢
- TCP 重组极慢
生产环境一般不会直接分析原始大包。
标准流程:
flowchart TD
A[原始10GB pcap] --> B[按时间切割]
B --> C[按IP/端口过滤]
C --> D[按协议过滤]
D --> E[生成小pcap]
E --> F[Wireshark分析]
1.editcap(推荐)
editcap工具属于:Wireshark Suite,比 tcpdump 更适合:
- 离线切割
- 时间切割
- 包数切割
- 大文件处理
1.1editcap安装
Linux:
1 | apt install wireshark-common |
或:
1 | yum install wireshark |
macOS:
1 | brew install wireshark |
1.2根据数据包数量切割
1 | editcap -c 500000 input.pcap output.pcap |
注意:-c 是按包数量
1.3根据时间(生产分析优选)
1 | #每分钟一个文件 |
提示:按时间切割,快速定位问题窗
1.4时间范围截取
1 | editcap \ |
含义:
| 参数 | 含义 |
|---|---|
| -A | 开始时间 |
| -B | 结束时间 |
2.生产环境定位方式
flowchart TD
A[业务报警时间] --> B[定位日志时间]
B --> C[editcap截取5分钟]
C --> D[Wireshark分析]
3.tcpdump抓包时切割文件
3.1tcpdump 按大小轮转
1 | # 根据大小轮转,每100MB切一个 |
3.2按时间轮转
1 | # 每60秒切割 |
3.3组合
1 | tcpdump -i eth0 \ |
含义:
| 参数 | 说明 |
|---|---|
| -G 300 | 5分钟切割 |
| -W 288 | 保留24小时 |
| 288*5分钟 | 24小时 |