详细输出是干什么的
-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 # 离线重放并最大化解码级别与显示内容
| 选项 | 额外显示 | 适用场景 |
|---|---|---|
| -v | TTL、总长度、校验和、IP 选项 | 快速核对基础字段 |
| -vv | 更完整的协议解码 | 核对协议细节 |
| -vvv | 接近全部可解字段 | 深度分析,开销最大 |
| -e | 链路层头部与帧长 | 配合判断 MTU 与分片 |
校验和显示为 incorrect 在启用网卡校验和卸载(offload)的主机上很常见,不代表链路真的传输出错。
高流量下深层解码会让 tcpdump 消费不及,结束时 stderr 会打印内核丢包统计,取证场景优先落盘再离线解码。
进阶要点
- 排查 MTU 问题时把 -vv 与 -e 搭配使用,同时看 IP 总长度与帧长
- 只看少数关键字段时,导出后用 tshark 取字段比在终端读 -vvv 更省力
- 长时间抓包建议只保存原始报文,详细解码留到离线阶段
- -v 与 -q 的作用方向相反,按分析目标二选一
- 深度分析前先确认捕获文件的时间戳精度是否够用
现场只有 tcpdump 时可用 -vv 快速核对字段,回到工位再用 Wireshark 做完整解码。