tcpdump -r 是读取 pcap 文件的命令,支持 -nn(禁用解析)、-c(限数量)、-A/-X(文本/十六进制查看)等选项快速分析;Wireshark 则提供图形化深度分析,如流追踪、协议树、专家信息等,二者配合可高效完成抓包验证与故障排查。

Linux 中读取并查看保存的抓包文件,主要分两种方式:命令行快速查看(用 tcpdump -r)和图形化深度分析(用 Wireshark)。前者适合终端快速确认内容,后者适合协议细节、会话追踪、异常识别等场景。
用 tcpdump 读取并查看 .pcap 文件
这是最直接的方式,无需额外工具,适合快速验证抓包是否成功、检查基本字段(IP、端口、协议、时间戳等)。
- 基础读取:
tcpdump -r capture.pcap—— 直接解析并输出原始包头信息 - 加 -nn 提速:
tcpdump -r capture.pcap -nn—— 不解析域名和端口名,避免延迟,推荐必加 - 只看 TCP 流量:
tcpdump -r capture.pcap -nn tcp - 过滤特定主机:
tcpdump -r capture.pcap -nn host 192.168.1.100 - 限制显示条数:
tcpdump -r capture.pcap -nn -c 20—— 只输出前 20 个包 - 以 ASCII 查看文本内容(如 HTTP 请求):
tcpdump -r capture.pcap -nn -A port 80 - 十六进制 + ASCII 混合查看:
tcpdump -r capture.pcap -nn -X port 443—— 适合分析 TLS 握手或自定义协议
用 Wireshark 图形化打开和分析 .pcap 文件
Wireshark 提供可视化界面、协议树解析、流追踪、统计图表等功能,是深入排查问题的主力工具。
Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...
- 安装(Debian/Ubuntu):
sudo apt install wireshark;安装后可能需将用户加入wireshark组才能免 sudo 打开文件 - 启动后点击 File → Open,选择你的
.pcap或.pcapng文件 - 常用操作:
- 顶部输入框输入显示过滤器,例如:
http、tcp.port == 8080、ip.addr == 10.0.0.5 - 右键某条 TCP 包 → Follow → TCP Stream,可完整还原一次会话的全部明文(若未加密)
- Statistics → Conversations 查看各主机间流量分布
- Analyze → Expert Information 快速定位重传、乱序、零窗等异常
- 顶部输入框输入显示过滤器,例如:
注意事项和常见问题
有些抓包文件在 tcpdump 中能读,在 Wireshark 中打不开?大概率是捕获时用了不兼容的链路层头类型(比如某些容器或虚拟网卡环境)。可尝试用 tcpdump 重新导出标准格式:
-
tcpdump -r original.pcap -w fixed.pcap—— 此操作会标准化封装,通常能解决兼容性问题 - 确保保存抓包时用了 -s 0(全包捕获),否则 Wireshark 可能看不到应用层数据
- Wireshark 默认不显示“混杂模式”相关字段,但 tcpdump 保存的 pcap 文件本身不含该标记,不影响分析
小技巧:终端里也能做简单筛选和统计
配合 shell 工具,可以快速提取关键信息:
- 统计各协议占比:
tcpdump -r capture.pcap -nn | awk '{print $4}' | sort | uniq -c | sort -nr - 列出所有唯一 IP 对:
tcpdump -r capture.pcap -nn | awk '{print $3,$5}' | sort -u - 查 DNS 查询次数:
tcpdump -r capture.pcap -nn port 53 | wc -l










