Windows或Linux SSH连接或者服务偶发性断开问题处理

查看PDF

分享

适用场景

该文档适用于在SSH连接Linux云服务器或者访问该服务器上的应用时偶现连接断开。

约束与限制

  1. 修改系统内核参数可能产生内核不稳定,请评估风险后进行操作。
  2. 为了确保系统稳定运行,修改内核参数后建议在合理的时间重启系统。

根因分析

  1. 执行以下命令,查看系统内核是否开启了TIME_WAIT快速回收和重利用策略

    sysctl -a |grep tcp_tw

    图1所示,确认已开启该策略。

    图1 TIME_WAIT

  2. 由于服务端开启了TIME_WAIT快速回收和重利用策略导致,即启用了net.ipv4.tcp_tw_recycle或者net.ipv4.tcp_tw_reuse。系统默认是不启用该功能。
    说明:客户端通常在NAT环境下,多台终端使用同一个公网ip,无法实现服务端与客户端的一对一连接。如果开启此参数服务端会回收处于TIME_WAIT状态的TCP连接,导致连接断开。

操作方法:

关闭上述两个内核参数,打开/etc/sysctl.conf,添加或者修改下列两行。

1
2
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_tw_reuse = 0

执行以下命令,使修改的配置生效。
# sysctl -p

说明:启动中修改内核参数可能存在内核加载该参数不稳定的情况,建议在合适的时间进行重启。

上文参考:SSH连接或者服务偶发性断开问题处理_弹性云服务器 ECS_故障排除_SSH连接 (huaweicloud.com)

windows服务偶发性断连解决

此文参考:

https://zhuanlan.zhihu.com/p/604394878
https://blog.csdn.net/boonya/article/details/105700988
运维排查篇 | 服务器产生大量的TIME_WAIT的原因你知道吗?