讲师中心 微信公众号
AI工具推荐 视频效率加速

Linux中tcpdump抓包怎么排查TCP重传超时故障

老杰大大_4462

老杰大大_4462

发布时间:2026-09-22 11:50:00

|

612人浏览过

|

来源于php中文网

原创

排查TCP重传超时故障需先确认“包发出但无响应”,再通过tcpdump抓包比对两端seq重复与RTO间隔定位触发端;必须客户端和服务端同时抓包,结合netstat、/proc/net/snmp和ethtool指标交叉验证,将现象归因为具体网络或系统问题。

linux中tcpdump抓包怎么排查tcp重传超时故障

排查TCP重传超时故障,核心是确认“包发出去了但没收到响应”,再定位重传发生在哪一端、由谁触发、是否持续发生。tcpdump能直接看到SYN重传、数据段重传、ACK丢失引发的重复发送等真实行为,比日志和监控更底层、更可信。

抓包前先明确关键信息

别急着敲命令,先快速确认三件事:

  • 问题端点:是客户端发不出?还是服务端收不到/不回?需在对应机器上抓包
  • 目标地址和端口:比如10.10.20.5:3306api.example.com:443,不确定就先抓tcp port 3306这类范围
  • 复现方式:能否稳定触发?建议用curlnc -vz或业务请求手动复现,边操作边抓包

用精准过滤快速捕获重传行为

重传不是靠肉眼找“Retransmission”字样——那是Wireshark解析后的标签,tcpdump终端输出里没有。你要盯的是**相同序列号(seq)的重复TCP段**,以及**时间间隔符合RTO规律的重发**。

onewo-rtlinux
onewo-rtlinux

Linux 实时编程助手。生成、审查并修改用于周期性控制任务和中断驱动程序的 C 代码。强制实施实时调度策略。

下载
  • 抓SYN重传(连接建立失败):
    sudo tcpdump -i eth0 -nn -s 0 'host 10.10.20.5 and port 3306 and tcp[tcpflags] & (tcp-syn) != 0'
    如果看到多个[S]且源端口相同、目的IP/端口一致、时间间隔约1s/3s/7s(典型RTO指数退避),说明客户端在反复尝试握手
  • 抓数据段重传(已建连后丢包):
    sudo tcpdump -i eth0 -nn -s 0 'host 10.10.20.5 and port 3306 and tcp and not tcp[tcpflags] & (tcp-syn|tcp-fin|tcp-rst)'
    重点关注seq值重复出现的数据包,尤其当后续包的ack没推进、或同一seq隔几百毫秒又出现
  • 加时间戳辅助判断:
    加上-tttt显示完整时间,方便算间隔;加-X可看载荷(如HTTP头),确认是不是同一请求被重发

对比两端抓包锁定问题位置

单端抓包只能看到“自己发了什么”或“自己收到了什么”,无法判断中间是否丢包。必须客户端和服务端同时抓,再比对:

  • 若客户端发出SYN,服务端tcpdump完全没看到→问题在链路中(防火墙、安全组、路由、网卡驱动丢包)
  • 若服务端收到SYN并回了SYN-ACK,但客户端没收到→SYN-ACK被中间设备拦截或丢弃
  • 若双方都看到数据包,但服务端回的ACK迟迟不到客户端→ACK丢了,客户端会重传数据;此时服务端可能已处理完请求,却因没收到ACK而不断重发FIN或等待
  • tcpdump -r file.pcap -nn | head -20快速查看文件开头,确认关键包是否存在

结合系统指标交叉验证

tcpdump发现重传后,要立刻查系统层面是否佐证:

  • 运行netstat -s | grep -i "retran",看TCP retransmits计数是否突增
  • 检查/proc/net/snmpTcp:行的RetransSegs
  • ethtool -S eth0 | grep rx_rx_droppedrx_errors,确认是否网卡层丢包
  • rx_dropped高,可能是中断风暴、ring buffer太小或CPU软中断处理不过来

重传本身是TCP的容错机制,真正要揪的是“为什么总得重传”。tcpdump给出的是现象,结合过滤、双端比对和系统指标,才能把“网络不稳定”的模糊结论,变成“SLB丢SYN-ACK”或“客户端网卡ring buffer溢出”这样的确定性判断。

热门AI工具

更多
蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

3590

2023.06.21

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

3133

2023.06.29

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2173

2023.06.30

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

5190

2023.07.05

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

4862

2023.07.06

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2933

2023.07.20

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2425

2023.07.20

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2639

2023.07.25

Vibeknow在线使用入口合集
Vibeknow在线使用入口合集

本专题汇总了Vibeknow在线创作视频的官方入口及网页版使用教程,涵盖PPT、PDF、Word等文档一键转讲解视频的核心操作,并整理了免费版水印规则与手机端浏览器访问指南,助你快速将知识内容视频化。

0

2026.09.21

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习

CLion 远程开发实战
CLion 远程开发实战

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn