Linux抓包分析流程为“先tcpdump捕获、再scp传输、后Wireshark筛选分析”:服务器用tcpdump按需抓包保存为pcap,本地用Wireshark加载并用显示过滤器(如http、ip.addr)快速定位,再通过Follow TCP Stream或逐层解析查看协议细节。

Linux 中结合 Wireshark 分析抓包文件,核心是“先捕获、再导入、后筛选”,不依赖图形界面环境也能完成全流程——关键在于区分 tcpdump(服务器端抓)和 Wireshark(本地端看)的分工。
用 tcpdump 在 Linux 服务器上精准抓包
生产服务器通常无图形界面,直接运行 Wireshark 不现实。应使用 tcpdump 命令按需捕获并保存为标准 pcap 或 pcapng 格式:
- 抓指定主机和端口:tcpdump -i eth0 host 10.0.3.5 and port 3306 -w mysql.pcap
- 避免磁盘撑爆:tcpdump -i any -w app.pcap -C 50 -W 3(单文件 50MB,最多轮转 3 个)
- 提升效率与完整性:tcpdump -i eth0 -nn -s 0 -w http_full.pcap 'tcp port 80'(-s 0 表示全包长,-nn 跳过 DNS/端口解析)
把抓包文件传到本地用 Wireshark 打开
Wireshark 是图形化工具,适合在开发机或笔记本上运行。将服务器生成的 .pcap 文件复制过来即可分析:
Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...
- 用 scp 下载:scp user@192.168.1.100:/tmp/http_full.pcap ./
- 双击或拖入 Wireshark 窗口打开,或通过菜单 File → Open 加载
- 确认时间戳、帧大小、协议分布是否合理(例如 Frame 层显示 74 bytes captured,说明没被截断)
用显示过滤器快速定位问题流量
打开文件后数据量往往很大,靠肉眼翻找效率极低。Wireshark 的显示过滤器(Display Filter)是分析提速的核心:
- 查 HTTP 请求:http 或 http.request.method == "POST"
- 查某 IP 通信:ip.addr == 172.16.0.12
- 查 TLS 握手:tls.handshake.type == 1(Client Hello)
- 组合条件:http and ip.dst == 142.250.191.46(发往 Google 的 HTTP 流量)
深入查看协议细节与会话内容
定位到目标数据包后,进一步展开分析才能看清问题本质:
- 点选一个 TCP 数据包 → 右键 → Follow → TCP Stream,可直接看到完整请求与响应体(含 HTTP 头、JSON、SQL 等明文内容)
- 在 Packet Details 面板逐层展开:Frame → Ethernet II → IP → TCP → HTTP,检查各层字段(如 TCP flags、HTTP status code、DNS QR flag)
- 对 HTTPS 流量,若已配置 SSLKEYLOGFILE 并导入密钥日志,Wireshark 可解密 TLS 内容,否则只能看到加密载荷










