tcpdump保存数据包的核心是-w参数,将原始二进制数据按pcap格式写入文件,可用wireshark、tshark或tcpdump -r读取;需root权限,推荐.pcap后缀,不可与-a/-x等显示参数混用。

用 tcpdump 把抓到的数据包保存成本地文件,核心就是 -w 参数。它会把原始二进制数据按标准 PCAP 格式写入文件,后续可用 Wireshark、tshark 或 tcpdump -r 直接读取分析。
基本保存命令格式
最简形式:
tcpdump -i eth0 -w output.pcap
说明:
- -i eth0 指定监听网卡(替换成你实际的接口,如 ens33、enp0s3 等)
- -w output.pcap 将所有捕获的数据包写入当前目录下的 output.pcap 文件
- 默认会持续抓包,按 Ctrl+C 停止
常用实用组合
单纯全量抓包容易文件过大或混杂无关流量,建议搭配过滤和限制条件:
- 只抓 100 个包就停止:
tcpdump -i eth0 -c 100 -w short.pcap - 只保存目标为 192.168.1.100 的 TCP 流量:
tcpdump -i eth0 host 192.168.1.100 and tcp -w target-tcp.pcap - 抓 HTTP 流量(端口 80)并禁用 DNS 解析(更快更干净):
tcpdump -i eth0 -n port 80 -w http.pcap - 按大小自动轮转:单个文件不超过 100MB,超限后新建文件(如
log_00001.pcap):tcpdump -i eth0 -C 100 -w log_.pcap
注意事项
保存操作需要 root 权限(通常加 sudo);
文件后缀推荐用 .pcap 或 .cap,确保兼容 Wireshark;
不要用 -A 或 -X 等显示类参数配合 -w,它们互斥;
如果想后台长期运行,可结合 nohup 和 &,例如:nohup sudo tcpdump -i eth0 port 22 -w ssh.pcap &。











