SSH 连接 - 一段时间后我无法输入任何内容

Том*_*раћ 8 ssh terminal

这一直发生在我连接到的服务器上。我输入:

ssh user@server
Run Code Online (Sandbox Code Playgroud)

我登录,一切正常几分钟。但是一段时间后,可能当我尝试在终端中输入任何内容时切换到其他程序(浏览器、ftp 客户端等)时,光标在我输入时停止闪烁,但实际上没有输入任何内容。我无法执行任何命令,我所能做的就是关闭终端窗口,重新打开它并重新连接。

如果这很重要,我在本地机器上运行 Ubuntu 12.04。

Ken*_*ter 10

您的客户端和服务器之间有一个 NAT 路由器或类似的状态防火墙。当您打开 TCP 会话时,防火墙会记住在您的客户端端口和服务器端口之间创建了 TCP 连接。只要防火墙记住连接,它就会继续在客户端和服务器之间传递数据包。

会话“中断”是因为防火墙忘记了连接并停止传递数据包。防火墙可能会忘记连接,因为它在空闲连接上超时。或者它可能会忘记,因为它的内存量有限,并且正在创建太多新连接以使其无法记住所有这些。

ssh一些选项可以通过在连接空闲时发送定期“保持活动”数据包来解决此问题。看看TCPKeepAliveServerAliveIntervalServerAliveCountMax选项。


小智 5

无论如何,您可以通过连续键入来中止 ssh 会话Enter ~ .,而不是关闭终端窗口。