公众号旧文

为什么 SecureCRT 和服务器的连接总是断开

作者:胖子阅读 —

很多人都有这样的体验: 用 SecureCRT 连上服务器,刚离开一会儿,回来一看 Disconnected 再连、再断、再连……心态逐渐爆炸

这不是 SecureCRT 的锅,也不完全是服务器的问题,而是网络、系统和默认配置“合谋”的结果。

这篇文章就系统讲清楚两件事: 1️⃣ 为什么 SSH 连接会频繁断开 2️⃣ SecureCRT 能做什么

一、SSH 连接为什么会“悄悄断掉”?

1️⃣ 中间设备“觉得你太安静了”

在现实网络中,你和服务器之间,往往还隔着很多“中间人”:

  • 家用路由器 / 光猫
  • 公司防火墙
  • 云厂商的 NAT 网关
  • 运营商网络设备

这些设备通常有一个空闲连接超时(Idle Timeout)机制。

如果一条 TCP 连接在一段时间内没有任何数据包 → 就会被当成“死连接”清理掉

而 SSH 正好是那种:

  • 你不敲命令
  • 它就真的什么都不发

于是,中间设备先下手为强。

2️⃣ 服务器端的“安全策略”

服务器也不一定是无辜的:

  • SSH 默认不开 keepalive
  • 云服务器有防暴力破解策略
  • ClientAliveInterval = 0(默认)

结果就是:

服务器:你这么久不说话,是不是走了?那我先把你踢了。

3️⃣ 本地网络不稳定

如果你符合以下任意一条:

  • 用 Wi-Fi
  • 笔记本合盖
  • 在不同网络之间切换

那么 TCP 连接被重置是正常现象,SecureCRT 只是“忠实地告诉你事实”。

二、SecureCRT 能做什么?

✅ 1. 开启 SecureCRT 的 KeepAlive,这是90% 场景下的解法。

Session
 Options
 → Terminal
 → Anti-idle
  • ☑ Send protocol NO-OP或
  • ☑ Send string:echo``
  • Interval:30 秒(或 60 秒)

这相当于告诉中间设备:

我这条连接还活着,别动我。

✅ 2. 启用自动重连

Session
 Options
 → Connection
 → Auto Reconnect

勾选:

  • ☑ Automatically reconnect
  • ☑ Reconnect if connection is lost

这样就算真的断了,也能“无感重连”。