当前位置: 首页 > news >正文

一次ssh无法连接服务器故障处理报告 - wanghongwei

1. 问题描述与分析

1.1 问题背景

  • 产品/平台: 开发中心操作系统切换平台
  • 内核版本: 4.19.90(宿主机与虚拟机一致)
  • 问题概述: SSH连接目标服务器时随机出现连接超时,复现时间不明确,但可通过重启目标服务器的sshd服务临时恢复。
  • 接手时间: 2025年5月7日

1.2 问题现象与分析

复现情况: 偶现,触发条件为高并发场景

关键排查过程:

阶段一:前置排查与初步分析

故障发生时,外部无法telnet目标机器的SSH端口(默认22)。然而在目标机器上查看,sshd端口处于正常监听状态。系统日志中无明显异常。

初步推断: 端口监听正常但telnet不通,可能性有二:

  1. 服务器未收到客户端报文(被防火墙或安全设备过滤)。
  2. 服务器收到了报文但未能正常处理(网卡、内核协议栈或服务本身异常)。

阶段二:共性问题排除(5月7日)

系统内核>4.12,初步排除了内核PAWS机制丢包的可能性。会议讨论聚焦于上述两种可能,并计划进行复现分析。

阶段三:现场复现与根因定位(5月11日)

  1. 服务状态检查: 登录问题服务器,确认sshd服务进程正常运行。
  2. 端口检查: 确认sshd端口正常监听。
  3. 本地探测: 在服务器本机上telnet 127.0.0.1 22连接失败

锁定故障域:服务器本机的网络报文处理路径(网卡或内核协议栈)。

详细排查:

  • 使用 ss -tln 查看sshd的监听socket队列状态,发现 Recv-Q (当前全连接队列长度) 为 129,而 Send-Q (全连接队列最大长度) 为默认的 128Recv-Q > Send-Q 表明 TCP全连接队列已溢出,新连接无法进入。
  • 通常,全连接队列溢出时,半连接队列(SYN队列)也应已满。通过 netstat -s | grep drop 命令查看,统计项 SYNs to LISTEN sockets dropped 的数值持续增长,证实了TCP半连接队列同样溢出丢包。

结论: 在高并发SSH连接场景下,服务器的TCP半连接队列(SYN Queue)和全连接队列(Accept Queue)被填满,导致新的TCP三次握手无法完成,表现为SSH连接超时。

1.3 问题结论

根本原因是:服务器内核的TCP连接队列(包括半连接队列和全连接队列)在高并发连接下被占满,导致新的SSH连接无法建立。

2. 解决方案与说明

拟定解决方案:临时调大内核中TCP连接队列的大小上限。

执行命令

# 增大TCP半连接队列(SYN Backlog)大小
sysctl -w net.ipv4.tcp_max_syn_backlog=65535
# 增大Socket全连接队列(Accept Queue)大小
sysctl -w net.core.somaxconn=65535

效果验证

  • 执行上述调优后,持续观察 SYNs to LISTEN sockets dropped 计数,停止增长
  • SSH连接立即恢复正常。
  • 后续多日观察,问题未再复现,丢包计数稳定。问题得以闭环

3. 类似问题解决思路(方法论总结)

处理此类网络连接超时问题,可遵循以下通用排查思路:

  1. 归类问题域: 了解基本故障现象(计算、存储、网络、内核等层面)。
  2. 排除常见陷阱: 检查操作系统基本配置,排除已知共性问题(例如,高版本内核的PAWS机制)。
  3. 检查服务状态: 确认目标服务进程是否存活、是否僵死。
  4. 检查端口状态: 从服务器内部(netstat, ss, lsof)和外部(telnet, nc)两个角度探测端口可达性。
  5. 定位故障点: 通过内外对比,确定问题是发生在网络链路上、主机防火墙,还是服务本机内部。
  6. 深入分析根因: 在定位到本机后,利用系统工具(ss, netstat -sdmesgsar等)从协议栈、资源、性能等维度进行深入分析。
  7. 确认并制定方案: 根据分析结论,制定针对性的解决方案或参数调整策略。
  8. 验证与闭环: 实施解决方案并持续观察,确保问题彻底解决。

4. 参考链接

  • Linux 网络栈监控和调优:接收数据 - 深度理解Linux内核网络栈处理流程,对分析队列溢出问题非常有帮助。
http://www.jsqmd.com/news/373379/

相关文章:

  • 5.4 用ChatCompletion API做Tool Calls 和Assistants有啥区别
  • 2026合肥儿童摄影推荐:儿童摄影标杆‖红黄蓝品牌实力与服务全维度解读 - 提酒换清欢
  • 智慧公厕哪家质量好? - 博客湾
  • 2026年知名的尼龙扎带/防滑尼龙扎带厂家综合实力参考(2025) - 品牌宣传支持者
  • clickhouse和pgSql跨库查询方案对比 - 实践
  • 5.3 用Assistants API实现多轮Function Calling
  • 2026年正规江南汽车/湖北江南专用汽车推荐几家可靠供应商参考 - 品牌宣传支持者
  • **解锁Agent智能体新纪元:自主协作、任务分解与人类意图对齐的终极指南**
  • 手持式雷达流速仪水文雷达测速仪
  • 智慧公厕哪家可靠? - 博客湾
  • 对比一圈后!更贴合专科生的降AIGC平台 千笔·专业降AI率智能体 VS 文途AI
  • 输入新老客户获客成本与复购,计算新客户生命周期价值更高。
  • 并行编程实战——CUDA编程的并行前缀和
  • 2026年热门的烤漆视觉点胶机/喷射阀视觉点胶机值得信赖厂家推荐(精选) - 品牌宣传支持者
  • 2026年靠谱的塑料金属分离器厂家选购攻略与推荐 - 品牌鉴赏师
  • 科研党收藏!更贴合专科生的降AIGC软件 千笔·专业降AI率智能体 VS 灵感ai
  • 导师推荐!AI论文软件 千笔·专业学术智能体 VS 知文AI,自考写作文首选
  • 2026年知名的野奢民宿设计/酒店民宿设计高分推荐 - 品牌宣传支持者
  • 2026年热门的注塑母料/吹膜母料厂家用户好评推荐 - 品牌宣传支持者
  • 2026年热门的圆形纸碗/航空纸碗厂家采购参考指南 - 品牌宣传支持者
  • 2026 年春节档必看热门电影口碑推荐与选择建议及观影指南 - 博客万
  • 智慧公厕哪家值得选?从技术、产品到案例的全维度解析 - 博客湾
  • 26年湛江高一期末统考考试第19题 三角函数零点
  • 【SPIE出版 | EI检索】第六届数字信号与计算通信国际学术会议(DSCC 2026)
  • 聚焦电子取证效率:2026年值得关注的介质预检恢复工作台,数据恢复/光盘抛光修复工具,电子取证厂商哪个好 - 品牌推荐师
  • 从零开始:C#单文件AOT打包前后端分离项目
  • 2026年口碑好的防紫外线汽车窗,隔热汽车窗膜,防晒汽车窗膜公司选型推荐指南 - 品牌鉴赏师
  • pytest 并行策略的探索
  • 给 Claude 装个仪表盘,时刻监测Token消耗跟任务进度
  • 9后端Web实战