几分钟不活动后 SSH 不断断开连接

几分钟不活动后 SSH 不断断开连接

我通过 PC 上的 SSH 通过 Virtualmin 连接到 Debian 9。我走了 +-2 分钟,回来后,SSH 断开了...我尝试更改服务器和客户端上的 ssh 配置...没有任何帮助...在哪里搜索问题?可能是网络或路由器的某些设置?

答案1

一些过于热心的路由器喜欢丢弃闲置时间过长(即不传输任何数据)的 TCP 连接。这可能是因为他们假设用户只使用 HTTP 之类的东西,其中连接通常在单个查询完成后关闭。

假设使用 OpenSSH,使用ClientAliveIntervalClientAliveCountMax指令sshd_config,或等效地ServerAliveIntervalServerAliveCountMax客户端配置(~/.ssh/config/etc/ssh/ssh_config)中启用协议级保活数据包。

它们实际上是为了检测远程主机是否已离开,但由于它们会导致在连接空闲时发送消息,因此它们还可以防止外部设备将连接视为空闲。

*AliveInterval设置客户端/服务器向远程发送查询的时间间隔(以秒为单位),并*AliveCountMax设置客户端/服务器将连接视为非活动状态后未应答的查询的数量。

像这些值应该做的事情:

ClientAliveInterval 15
ClientAliveCountMax 4

答案2

我的华硕 DSL-N66U 多年来一直这样做,今天我找到了一个解决我的问题的设置。因此,我想详细说明该问题并在互联网上的某个位置进行修复,希望其他人可以找到它。

我托管一个本地服务器,该服务器具有 SSH、HTTP、HTTPS、IMAP、IMAPS、SMTP、SMTPS、MQTT 所有端口转发/针孔。

我有一个静态 IP 和一个与我的静态 IP 关联的域名,因此它是一个带有域名的常规家庭服务器。

当我使用内部网络中的域名连接到服务器时,连接会在一段时间后断开。这使得无法使用 SSH、IMAP、MQTT 或任何保持套接字打开的方式。 Asus DSL-N66U 上的解决方案是更改:

LAN -> Switch Control -> NAT AccelerationDisabled

相关内容