我在一个客户那里有几台 Linux 服务器,他最近大幅增加了带宽 - 从大约 0.8/5mbps 到 25mpbs/100mbps...(是的,100mpbs!)这非常好,但自从我的 WinSCP/Putty 连接停滞后,如果我离开它们片刻......如果我定期交互(我输入或浏览/发送文件而没有太多的停顿)它就可以正常工作..然后,如果我去执行另一项任务一两分钟,果然 putty/winscp 就会停滞,我的连接就会断开..就像互联网“停止”了或者我离线了一样。
但是->如果我在一个新的 putty 窗口上打开一个新连接,它会立即做出响应,所以我认为这可能与 MTU 设置有关,但我不知道那是什么或者要将它改为什么,也不知道如何改。
编辑
@NickW 和 @MadHatter 的回答是正确的:但是为了将来的使用 - 您可以通过设置 WinSCP / putty 来解决这个问题keepalive
... 为了完整起见,这里有一个截图
答案1
正如 Madhatter 所说,中间有一个新的路由器,并且它显然对超时更加严格,putty 中的简单解决方案是更改 putty 内部的一些超时选项。
在会话中,打开Connection
窗口,启用 keepalive 并将其设置为 5,并确保Enable TCP keepalives
也选中了。第一个 keepalive 是 SSH 内部的,可能不是问题所在,但设置它也不会有什么坏处。
答案2
鉴于我们知道涉及一个新的路由器,这可能是状态表条目过时的问题。
基本上,路由器中的 NAT 表(将内部地址和端口号映射到外部地址和端口号)不是无限扩展的。为了防止内存耗尽,大多数此类设备都会记录最近使用的特定条目,并删除足够旧的条目。
有时,您可以通过在 ssh 配置中启用此功能来解决这个问题TCPKeepAlives
,这有助于保持流量通过本来可能处于空闲状态的 ssh 连接流动。但是,有时路由器在回收表空间方面过于激进,以至于无法保持连接超过规定的时间。如果事实确实如此,重新配置或更换路由器可能是您唯一的选择。