这一直发生在我连接到的服务器上。我输入:
ssh user@server
Run Code Online (Sandbox Code Playgroud)
我登录,一切正常几分钟。但是一段时间后,可能当我尝试在终端中输入任何内容时切换到其他程序(浏览器、ftp 客户端等)时,光标在我输入时停止闪烁,但实际上没有输入任何内容。我无法执行任何命令,我所能做的就是关闭终端窗口,重新打开它并重新连接。
如果这很重要,我在本地机器上运行 Ubuntu 12.04。
Ken*_*ter 10
您的客户端和服务器之间有一个 NAT 路由器或类似的状态防火墙。当您打开 TCP 会话时,防火墙会记住在您的客户端端口和服务器端口之间创建了 TCP 连接。只要防火墙记住连接,它就会继续在客户端和服务器之间传递数据包。
会话“中断”是因为防火墙忘记了连接并停止传递数据包。防火墙可能会忘记连接,因为它在空闲连接上超时。或者它可能会忘记,因为它的内存量有限,并且正在创建太多新连接以使其无法记住所有这些。
ssh
有一些选项可以通过在连接空闲时发送定期“保持活动”数据包来解决此问题。看看TCPKeepAlive
,ServerAliveInterval
和ServerAliveCountMax
选项。