用 tcpdump -w 就能直接保存为标准 PCAP 文件,这是 Wireshark、tshark 等工具可直接打开的原始二进制格式;必须配合 sudo 权限、-i 指定接口、-w 指定 .pcap 后缀路径,推荐加 -s 0 和 -n -nn 确保完整性和解析准确性。

用 tcpdump -w 就能直接保存为标准 pcap 文件,这是 Wireshark、tshark 等工具可直接打开的原始二进制格式,无需转换。
基础保存:必须带 -w 和权限
最简有效命令需满足四个基本条件:
- 加 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 的才可抓包
保证完整性和可用性:推荐加固参数
默认设置容易导致分析失效——比如 HTTP 头被截断、端口显示成 http 而非 80、DNS 解析拖慢速度。建议组合使用:
- -s 0:捕获每个包的全部字节,避免默认 68 字节截断(否则 TLS 握手、JSON 响应体全丢)
- -n -nn:禁用 IP 主机名和端口服务名解析,输出纯数字地址(192.168.1.100)和端口号(443),加快捕获、避免干扰
- 示例完整命令:
sudo tcpdump -i eth0 -s 0 -n -nn -w /tmp/full_http.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),超量自动覆盖最旧的
保存后验证与分析
生成后别急着打开 Wireshark,先确认文件是否有效:
- 用
file capture.pcap查类型,应显示 “tcpdump capture file (little-endian)” - 用
capinfos capture.pcap看包数、时间范围、链路层类型(如 EN10MB) - Wireshark 中打开后,可在顶部 Display Filter 栏输入
tcp.port == 80或ip.addr == 192.168.1.100快速筛选

















