首页/网络/网络排障速查/snaplen 与截断控制(-s)
本包目录(235 条)

snaplen 与截断控制(-s)

每个包只抓前 N 字节可大幅降低开销;默认 snaplen 足够看头部,需要看完整载荷时用 -s 0 抓全包,截断的包在输出里显示 [|tcp]。

网络排障速查网络更新于 2026-10-12

snaplen 用法

snaplen 用法
tcpdump -nn -i eth0 -s 96 -c 1000 port 33434   # 只留头部,低开销
tcpdump -nn -i eth0 -s 0 -A 'tcp port 80'       # 抓全包看正文
tcpdump -nn -i eth0 -s 1500 -w /tmp/hdr.pcap port 443
默认值现代 libpcap 默认 262144 字节(旧版本 65535)
-s 0抓取完整报文(含 VLAN/隧道封装所需的全部字节)
截断迹象输出出现 [|tcp] / [|http] 标记
分析 TLS 握手、HTTP 头之外的内容时必须 -s 0;只做连接层判读时用小 snaplen 反而能显著提高抓包吞吐。

易错点

  • 看到 [|tcp] 却以为报文损坏:那是 snaplen 截断标记,加大 -s 重抓即可
  • 全速链路用 -s 0 长时间抓:磁盘与 CPU 压力骤增,可能整机受影响

数据来源与参考

  • man 8 tcpdump(-s snaplen)
  • pcap-savefile(5):抓包文件格式

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌