tcpdump -w 可直接保存为标准 pcap 文件供 Wireshark 等工具直接打开;必须满足四条件:sudo 权限、-i 指定接口、-w 指定 .pcap 后缀路径、接口状态为 UP。

直接用 tcpdump -w 就能保存为标准 pcap 文件,Wireshark、tshark 等工具可直接打开,无需转换。
必须满足的四个基础条件
缺一不可,否则会静默失败或生成无效文件:
- 加 sudo 或以 root 运行:普通用户无权访问网卡驱动,不加会报 “You don’t have permission to capture”
-
指定接口(-i):如
-i eth0、-i lo(本地回环必须用lo)、-i any;先执行sudo tcpdump -D查看可用接口列表 -
用 -w 指定带 .pcap 后缀的路径:如
-w /tmp/traffic.pcap;后缀必须是.pcap或.cap,否则 Wireshark 可能无法识别 -
确保接口处于 UP 状态:运行
ip link show,目标接口状态需为UP,否则抓不到包
推荐加固参数(提升分析可用性)
默认行为容易导致关键信息丢失或解析干扰:
- -s 0:捕获每个包的全部字节;默认只取前 68 字节,会截断 HTTP 响应体、TLS 握手数据、JSON 内容等
-
-n -nn:禁用 IP 主机名和端口服务名解析,输出纯数字地址(如
192.168.1.100)和端口号(如443),避免 DNS 查询延迟和名称缓存干扰
示例完整命令:sudo tcpdump -i eth0 -s 0 -n -nn -w /tmp/debug.pcap port 80
按需控制保存行为
适应不同场景的实际需求:
-
限制包数量:加
-c 1000,抓满 1000 包自动退出,适合快速验证 -
限制时长:配合
timeout,如timeout 300 sudo tcpdump -i eth0 -w /tmp/5min.pcap -
滚动切片防爆盘:用
-C 50 -W 5 -w log.pcap表示每 50MB 生成一个新文件,最多保留 5 个(log_00001.pcap→log_00005.pcap),超量自动覆盖最旧的 -
后台长期运行:加
nohup ... &,终端退出也不中断,如nohup sudo tcpdump -i eth0 port 22 -w /var/log/ssh.pcap &
保存后建议验证一下
别急着拖进 Wireshark,先确认文件有效:
- 运行
file capture.pcap,输出应含 “tcpdump capture file (little-endian)” - 运行
capinfos capture.pcap,检查包数、时间范围、链路层类型(如EN10MB)是否合理 - Wireshark 中打开后,顶部 Display Filter 栏可输入
http、tcp.port == 443等快速筛选


















