SSH 超时问题不一致

SSH 超时问题不一致

我不确定是否有其他人遇到过 SSH 超时问题

我设置了全新安装的 CentOS 6.5 minimal,完全没有修改 SSH 配置,当我使用 putty 通过 SSH 登录时,它从不超时。我可以连续运行数周,即使空闲时也不会超时

我重新设置了另一个,没有修改 ssh 配置,它每隔 2 分钟左右就会超时一次

我的意思是为什么会这样?SSH 超时是否像抛硬币一样,即使配置完全相同,某些服务器的超时频率也可能比其他服务器高?还有人遇到过这种情况吗?

无论如何我继续添加

ClientAliveInterval 60

在服务器上仍然会出现超时问题

有人能告诉我如何获得一个一致的 ssh 配置,以便完全禁用超时...并且能够像预期的那样 100% 地工作吗?

谢谢

答案1

连接超时通常是由于数据包过滤器或 NAT 设备由于不活动而导致 TCP 连接超时所致。关于 ssh 设置,没有一条黄金法则。很大程度上取决于您的系统和连接。通常,您应该将保持活动间隔值设置为小于连接通常超时所需的时间(从系统中的连接表中踢出)。

您可以在服务器上将其设置为 ,ClientAliveInterval也可以在客户端将其设置为ServerAliveInterval。该值是秒数。如果将其设置为太高的值,ssh 可能无法在连接断开之前发送消息。

您还应增加服务器 ( ClientAliveCountMax) 或客户端 ( ServerAliveCountMax) 上的最大保持活动重试次数。默认值为 3。

此计数表示服务器/客户端在断开连接之前尝试从另一方获取保持活动确认的次数。假设您设置ClientAliveInterval为 60 秒和ClientAliveCountMax10。如果其中一方未响应 10 次连续的保持活动查询,则连接将在 10 次尝试 * 60 秒后断开。您可以尝试将此参数增加到更高的级别,例如 100 甚至 9999(?)。

您还可以考虑关闭客户端和服务器上的 TCP 保持活动数据包。

TCPKeepAlive no

这意味着如果路由暂时中断,连接不会中断。但另一方面,AliveCountMax如果存在通信问题,连接有时可能会挂起(特别是如果您将其设置为高值),因为 ssh 无法在 TCP 级别检测到该问题。

也可以看看:

相关内容