你的浏览器无法正常显示内容,请更换或升级浏览器!

网络排障实战:从抓包分析到问题定位

tenfei
tenfei
发布于2026-07-17 12:38 阅读19次
网络排障实战:从抓包分析到问题定位
网络排障是运维和开发人员的必备技能。本文通过一个真实的网络故障案例,从现象分析到抓包定位,再到最终解决,完整展示网络排障的标准流程和实用技巧,帮助读者建立系统化的排障思路。
## 引言 在日常运维和开发工作中,网络问题是最让人头疼的故障类型之一。问题表现千奇百怪——有时候是服务间歇性不可达,有时是响应延迟忽高忽低,还有一些时候"明明都正常却就是不通"。面对这些情况,如果没有一套系统化的排障方法,很容易陷入盲目猜测的困境。 本文通过一个真实案例,带你走完从现象到根因的完整排障流程。 ## 案例背景 某天下午,开发团队反馈测试环境的微服务之间调用偶发超时,频率大约每分钟出现2-3次,每次超时持续5-10秒后自动恢复。查看应用日志只看到连接超时错误,无法判断是应用层还是网络层的问题。 ## 排障第一步:缩小范围 首先确认故障范围: - 检查同一宿主机上的其他服务是否存在类似问题 → 存在 - 检查不同宿主机上的服务之间通信是否正常 → 也存在 - 检查外部网络(如访问公网)是否受影响 → 不受影响 由此初步判断:问题出在内网通信链路,而非应用本身或外网。 ## 排障第二步:抓包分析 在内网两台服务器上同时启动 tcpdump 抓包: ```bash # 服务器A (源端) tcpdump -i eth0 -nn -s0 -w /tmp/server_a.pcap host 10.0.1.20 # 服务器B (目标端) tcpdump -i eth0 -nn -s0 -w /tmp/server_b.pcap host 10.0.1.10 ``` 等待故障复现后停止抓包,将 pcap 文件下载到本地用 Wireshark 分析。 关键发现: 1. 在故障时间点,源端发送了 SYN 包但未收到 SYN-ACK 2. 源端在3秒后进行了第一次重传,6秒后第二次重传 3. 目标端的抓包文件中完全看不到对应的 SYN 包 这说明数据包在传输路径上丢失了,而非目标端处理能力不足。 ## 排障第三步:逐跳排查 内网链路经过一台交换机和一台路由器,逐跳检查: ```bash # 检查交换机端口统计 show interfaces eth0/1 counters errors # 检查路由器接口 show interfaces ge-0/0/0 extensive | match error ``` 在交换机连接上游的端口上发现了递增的 CRC 错误计数,同时伴随少量 input errors。至此根因定位清晰:物理链路质量问题导致间歇性丢包。 ## 排障第四步:解决方案 1. 更换交换机与路由器之间的网线 2. 更换后持续监控 24 小时,错误计数不再增长 3. 联系网络团队将该链路的 snmp 监控告警阈值从 1% 调整为 0.1%,以便更早发现问题 ## 经验总结 - **从现象到范围**:先确认问题是全局性还是局部性,是应用层还是网络层 - **抓包是利器**:tcpdump + Wireshark 组合是网络排障的"显微镜",有条件的建议长期维护一台抓包分析专用机 - **逐跳原则**:网络问题遵循 OSI 模型自下而上排查,不要跳过任何一层 - **监控先行**:事后补救不如事前预防,关键链路的错误计数监控必不可少 ## 常用排障命令速查 | 命令 | 用途 | |------|------| | `ping -c 100 -i 0.2 host` | 快速连续 ping 检测丢包率 | | `mtr -r host` | 路由跟踪+丢包统计 | | `ss -tunlp` | 查看当前 TCP/UDP 连接状态 | | `tcpdump -i any port 80 -nn` | 抓取指定端口的流量 | | `ethtool -S eth0` | 查看网卡硬件统计信息 | | `ip neigh` | 查看 ARP 表,排查二层问题 | 掌握这些方法和工具,下一次面对网络故障时,你也能有条不紊地定位问题根源。

2

0

文章点评
赞助商广告位
Copyright © from 2021 by namoer.com
458815@qq.com QQ:458815
蜀ICP备2022020274号-2