首页/数据/Redis 进阶速查/网络层排查:ping、mtr 与抓包
性能与排障129 条

网络层排查:ping、mtr 与抓包

客户端侧排查顺序:ping 基础连通 → mtr 查路径抖动与丢包 → 对比不同源机器的延迟 → 必要时在两端抓包看握手与重传。

Redis 进阶速查数据更新于 2026-10-13

网络层排查的顺序

客户端侧怀疑网络时按顺序推进:ping 看基础连通与往返时间,再确认端口可达,然后用 mtr 看逐跳丢包与抖动,必要时两端抓包看重传、零窗口与握手延迟。目的是先证伪网络问题,再回服务端找原因——反过来做,往往在 Redis 侧空转很久,最后发现问题在链路上。

基本信息

基础连通ping -c 10 目标主机
端口可达nc -vz 目标 6379 或 telnet
路径质量mtr -rw 目标,看逐跳丢包与抖动
深度分析tcpdump 抓包后用 Wireshark 看重传与零窗口
本机统计ss -s 看套接字与重传计数
客户端延迟redis-cli --latency、--latency-history

典型使用场景

  • 排除网络嫌疑:延迟升高时先证明链路干净,避免在服务端空转
  • 多源对比:从不同客户端测同一实例,判断是链路问题还是实例问题
  • 新链路验收:跨机房或跨云访问前先量往返延迟与丢包
  • 偶发超时定位:抓包看重传与零窗口,区分带宽不足和丢包
  • 合规前置:确认抓包范围、授权与脱敏方式后再动手

最小示例

最小示例
ping -c 10 redis-host                     # 基础连通与 RTT
nc -vz redis-host 6379                    # 端口是否可达,比 ICMP 更贴近业务
mtr -rw -c 20 redis-host                  # 逐跳丢包与抖动
sudo tcpdump -i any -nn port 6379 -c 200 -w /tmp/redis.pcap   # 限量抓包
ss -s                                     # 本机套接字与重传统计
redis-cli --latency -h redis-host         # 客户端视角的延迟对比

排查顺序与注意

步骤目的注意
ping确认基础连通与往返时间ICMP 常被限速或禁用,不通不代表服务不可达
端口探测确认目标端口可达TCP 可达性比 ICMP 更贴近真实业务
mtr看逐跳丢包与抖动多跑几次,单次结果容易误判
抓包看重传、零窗口与握手延迟会包含数据内容,必须限时限量并脱敏
客户端延迟测试得到业务视角的延迟要和服务端基线对照才有意义
顺序本身就是方法:先网络、后服务端。把 ICMP 与 TCP 两种证据都拿到,结论才站得住。
ICMP 被限速的环境里丢包率会明显失真,判断链路质量要看逐跳数据与 TCP 层统计,而不是只看 ping 的汇总行。
抓包会记录命令与数据内容:必须在授权范围内执行、限制抓包时长与文件大小,并及时脱敏与删除。

易错点

  • 跳过网络验证直接怀疑服务端:来回误判,排障时间成倍增加
  • 只信 ping 的丢包率:ICMP 常被限速,结论会偏离实际情况
  • 抓包不限时长不限容量:文件撑爆磁盘,还额外拖慢被排查的机器
  • 抓到包直接外发:其中含业务数据与凭据,必须先脱敏并取得授权
  • 只从一个源点测:链路异常常是单向的,多源对比才能定位

数据来源与参考

  • Redis 官方文档:网络延迟排查
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌