首页/网络/抓包与流量分析速查/tcpdump -v 详细输出

tcpdump -v 详细输出

增加输出详细度:-v 显示 TTL、总长度、校验和服务类型;-vv 进一步展开,-vvv 接近完整解码。排查 TTL 异常、分片与选项时使用。

详细输出是干什么的

-v 系列选项逐级提高解码详细度:-v 在 IP 层补上 TTL、总长度、校验和与服务类型;-vv 展开更多协议字段;-vvv 接近完整解码,连不常见的选项与扩展字段也打印出来。排查 TTL 异常、分片标记、路径 MTU 问题时,默认摘要往往不够用,需要这一级细节。

基本信息

适用平台Linux / macOS / BSD 上的 tcpdump
语法tcpdump -v | -vv | -vvv [选项] [过滤表达式]
输出差异-v 增加 IP 基础字段,逐级更详细
常用搭配-nn 不解析名字、-e 看帧头、-c 限量
性能提示级别越高解码开销越大,高流量下容易跟不上

典型使用场景

  • 排查 TTL 异常,判断是否被异常改写或经过非常规跳数
  • 确认报文是否被分片,配合 -e 看实际帧长
  • 核对 IP 头里的服务类型与选项字段
  • 做深度取证时获取尽可能完整的解码信息

常用示例

常用示例
tcpdump -i eth0 -nn -v -c 5 icmp                       # 看 ICMP 与 IP 基础字段
tcpdump -i eth0 -nn -vv -c 5 'tcp port 22'             # 展开更多协议细节
tcpdump -i eth0 -nn -vv -e 'greater 1400' -c 5         # 配合帧头核对 MTU
tcpdump -nn -vvv -r frag.pcap -c 3                     # 离线重放并最大化解码

级别与显示内容

选项额外显示适用场景
-vTTL、总长度、校验和、IP 选项快速核对基础字段
-vv更完整的协议解码核对协议细节
-vvv接近全部可解字段深度分析,开销最大
-e链路层头部与帧长配合判断 MTU 与分片
校验和显示为 incorrect 在启用网卡校验和卸载(offload)的主机上很常见,不代表链路真的传输出错。
高流量下深层解码会让 tcpdump 消费不及,结束时 stderr 会打印内核丢包统计,取证场景优先落盘再离线解码。

进阶要点

  • 排查 MTU 问题时把 -vv 与 -e 搭配使用,同时看 IP 总长度与帧长
  • 只看少数关键字段时,导出后用 tshark 取字段比在终端读 -vvv 更省力
  • 长时间抓包建议只保存原始报文,详细解码留到离线阶段
  • -v 与 -q 的作用方向相反,按分析目标二选一
  • 深度分析前先确认捕获文件的时间戳精度是否够用
现场只有 tcpdump 时可用 -vv 快速核对字段,回到工位再用 Wireshark 做完整解码。

易错点

  • 把校验和错误当成真实损坏:抓包点在本机出向路径上时,网卡卸载会导致计算值不参与,显示错误属正常现象
  • 高流量下开 -vvv 边抓边解码导致丢包,最终证据不完整
  • 只看 -v 输出就判断分片:分片标记与偏移需要 -vv 甚至更细的输出配合 -e 才能看清

数据来源与参考

  • man 8 tcpdump(-v 系选项)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌