Linux网络抓包分析核心是tcpdump捕获+Wireshark解析:tcpdump在无图形界面服务器上过滤保存pcap(如port 80、-w -C -W),scp传输后Wireshark图形化分析(显示过滤、Follow TCP Stream),用于定位连接超时、响应慢、HTTPS证书等问题,需注意性能与安全风险。
Linux下用tcpdump和Wireshark做网络抓包分析,核心就两点:先用tcpdump在服务器上高效捕获数据,再导出到本地用Wireshark图形化深度解析。
不装图形界面的生产服务器没法直接跑Wireshark,所以分工明确——tcpdump负责“录”,Wireshark负责“看”。
tcpdump基础抓包:过滤准、保存稳
抓包不是全量收,得靠表达式过滤出真正关心的流量。常用组合有:
按端口
:
(抓HTTP)或
(SSH)
按协议+方向
:
(只抓来自某IP的TCP包)
保存为pcap文件
:
(单文件100MB,轮转5个,防磁盘打满)
注意加
跳过DNS解析提速,加
减少输出冗余;生产环境慎用
(全包长),默认截断可能漏关键载荷,但全抓会显著增加I/O和存储压力。
tcpdump与Wireshark协同:从命令行到图形界面
tcpdump生成的
文件可直接用Wireshark打开。常见操作链路:
服务器上运行:
用
把文件拉到本地:
Wireshark中打开 → 用显示过滤器进一步缩小范围,比如
或
Wireshark里右键数据包选“Follow → TCP Stream”,能直接看到完整会话内容(如HTTP请求/响应体、Redis命令),比翻原始十六进制直观得多。
CentOS Linux 7.9.2009
CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离线兼容性测试。
下载
定位典型问题的抓包思路
不同故障对应不同抓包侧重点:
连接超时/拒绝
:抓三次握手,看SYN发出去有没有SYN-ACK回来。Wireshark里过滤
,结合时间列判断丢包或
防火墙
拦截
接口返回慢
:抓应用端口(如8080)+后端服务端口(如5432),对比请求发出到响应返回的时间差,再看后端响应是否也慢,快速区分是网络延迟还是服务瓶颈
HTTPS证书报错
:抓443端口,过滤
(Client Hello),检查SNI域名是否正确,再看Server Hello里返回的证书是否匹配
安全与性能提醒
抓包本身有风险,需提前评估:
避免在高流量网卡(如万兆)上无过滤全抓,可能瞬间打满磁盘或拖慢系统
敏感业务(如支付回调)抓包前确认合规性,pcap文件含明文字段(URL、Header、Cookie),传输和存储需加密
容器环境抓宿主机网卡可能看不到内部veth流量,应进入容器用
或在
docker
d启用
桥接后抓
不复杂但容易忽略。
tcpdump -i eth0 port 80port 22tcpdump -i eth0 tcp and src host 192.168.1.100tcpdump -i eth0 -w /tmp/nginx_access.pcap port 80 -C 100 -W 5-n-q-s 0.pcaptcpdump -i any -w /tmp/app_debug.pcap host 10.0.3.5 and port 3306scpscp user@server:/tmp/app_debug.pcap ./mysql.query contains "SELECT"http.request.method == "POST"tcp.flags.syn == 1tls.handshake.type == 1nsenterhost.docker.internal