tcpdump 用 -s n 设置抓包最大字节数,n=0 表示不限制(通常为65535),默认新版为262144字节、旧版为68字节;超长则标记[|tcp]等提示截断;需权衡分析需求与性能开销。

用 -s 参数指定字节数即可限制 tcpdump 抓包长度。
如何设置具体长度值
在命令中加入 -s N,其中 N 是你希望每个数据包最多捕获的字节数。例如:
-
tcpdump -s 1500:每个包最多抓 1500 字节(常见以太网 MTU) -
tcpdump -s 64:只抓包头部分,适合快速查看连接建立过程 -
tcpdump -s 0:表示不限制长度,实际取系统支持最大值(通常是 65535)
默认行为与截断识别
新版 tcpdump 默认捕获长度为 262144 字节,旧版为 68 字节。若实际包长超过设定值,tcpdump 会在输出中标记 [|tcp]、[|ip] 等,说明协议载荷被截断,无法解析后续内容。
权衡长度与性能
增大 -s 值能保留更多有效载荷(如 HTTP body、TLS 应用数据),但也会带来开销:
- 内存和 CPU 消耗上升
- 缓冲区压力变大,可能丢包
- PCAP 文件体积显著增加
建议按分析目标选择:查 TCP 握手用 -s 64,分析 HTTP 内容至少 -s 1500,做深度协议还原可考虑 -s 0。











