tcpdump生成标准pcap文件的唯一必需参数是-w,-c和-w配合实现轮转写入,-s 0确保完整捕获,-n -nn禁用解析,nohup可后台安全运行。

用 tcpdump -w 就能直接保存为标准 PCAP 文件,-W 参数本身不负责保存,而是配合 -C 实现轮转写入。
核心命令:-w 是保存的关键
tcpdump 生成标准 PCAP 文件的唯一必需参数是 -w,后面跟上文件路径和 .pcap 后缀即可。例如:
-
sudo tcpdump -i eth0 -w traffic.pcap—— 持续抓包并写入 traffic.pcap -
sudo tcpdump -i lo port 8080 -w http_local.pcap—— 只抓本机回环口的 8080 端口流量
生成的文件符合 libpcap 格式,Wireshark、tshark、Suricata 等所有兼容工具都能直接打开。
用 -C 和 -W 实现自动轮转(“滚动保存”)
当需要长时间运行又担心单个文件过大时,-C(按大小切分)和 -W(限制文件数量)组合使用:
sudo tcpdump -i eth0 -C 50 -W 5 -w capture.pcap- -C 50 表示每个文件达到 50MB 就新建一个
- -W 5 表示最多保留 5 个文件(capture_00001.pcap 到 capture_00005.pcap),超出后覆盖最旧的
注意:-w 后面的文件名只是基础名,实际生成的是带编号的 pcap 文件,不是单个大文件。
确保完整性:常用加固选项
默认情况下 tcpdump 可能截断长包(只取前 65535 字节),如需完整帧,请加 -s 0;避免 DNS/端口解析干扰分析,推荐加上 -n -nn:
sudo tcpdump -i eth0 -s 0 -n -nn -w full_capture.pcap- -s 0:捕获每个包的全部内容,不截断
- -n -nn:禁用 IP 主机名和端口服务名解析,输出纯数字地址和端口号
后台运行与安全退出
远程 SSH 抓包时,建议用 nohup 防止会话断开导致中断:
nohup sudo tcpdump -i eth0 -s 0 -w /tmp/longrun.pcap &- 停止时可用
killall tcpdump或查进程号后kill -INT [pid](模拟 Ctrl+C,确保写入尾部索引)
直接关终端或 kill -9 可能导致 pcap 文件损坏,无法被 Wireshark 正确识别。











