ssh挂起,高延迟连接(国际连接)

ssh挂起,高延迟连接(国际连接),ssh,latency,freeze,Ssh,Latency,Freeze,这让我最近的编程非常令人沮丧 我现在在阿根廷,通过SSH连接到美国服务器。可以理解,这里的ping有点高(平均约200ms),因此当我使用SSH连接到服务器时,每次击键之间都有一个稍微明显的延迟。这很好,很容易处理 不容易处理的是,大约每5分钟左右,SSH就会完全挂起,并需要大约3-5分钟才能返回提示。我知道服务器没有陷入困境,因为我可以在等待一个连接返回时轻松地打开几个新连接(事实上,这是我能够工作的唯一方式)。当SSH最终回来时,我可以看到它实际上一直在后台工作(大文件下载是测试这一点的好方

这让我最近的编程非常令人沮丧

我现在在阿根廷,通过SSH连接到美国服务器。可以理解,这里的ping有点高(平均约200ms),因此当我使用SSH连接到服务器时,每次击键之间都有一个稍微明显的延迟。这很好,很容易处理

不容易处理的是,大约每5分钟左右,SSH就会完全挂起,并需要大约3-5分钟才能返回提示。我知道服务器没有陷入困境,因为我可以在等待一个连接返回时轻松地打开几个新连接(事实上,这是我能够工作的唯一方式)。当SSH最终回来时,我可以看到它实际上一直在后台工作(大文件下载是测试这一点的好方法),但它只是没有更新我的屏幕

有人知道是什么导致了这一切吗


其他一些事实:服务器是Ubuntu,我正在连接MacOSX。我已经在SSH设置中打开了keepalive。当我按住一个键(例如向左或向右箭头滚动)时,它很可能会挂起,而这个键会快速发送很多键。事实上,我可以通过登录并按住任何像“a”这样的键来可靠地重现挂起-挂起之前,它永远不会超过一整行“a”。这是我第一次进行国际连接时开始的,所以我假设这与此有关(延迟?),但不能确定。

尝试调整您的连接。

我习惯于通过高延迟链接进行ssh连接-600毫秒。它很慢,但我很少有任何问题。首先-打开另一个终端窗口,ping服务器并观察连接。告诉我们您看到了什么。

尝试使用一些详细的标志(ssh-vv[vv]somehost)进行sshing,并查看在挂起时是否打印了任何指示信息。

奇怪。我不能帮你解决你的问题,但我有一个小贴士可以让你不那么恼人:使用
screen(1)
。这将使另一端的外壳保持活动状态,您可以在重新连接后继续执行任何操作


如果您只需要在另一端运行命令,我建议将该命令作为选项传递到
ssh
(它将连接、运行命令、显示结果并断开连接)。

好吧,我现在连接到另一个无线网络,问题似乎已经消失。我不能确定到底是什么导致了它(我没有无线路由器的登录权限),但这似乎表明它是路由器上的东西,而不是服务器或客户端计算机上的东西


旧路由器和新路由器都是Linksys WRT54G的,所以我不确定问题出在哪里。希望它能帮助别人

我认为这是阿根廷ISP的问题。当我与另一个ISP切换到另一个无线网络时,它开始工作。他们可能正在玩一些端口限制游戏,或者谁知道会发生什么。

我在使用“cat”甚至“ls-l”时遇到了类似的问题,导致ssh挂起(在Ubuntu上)。将MTU大小调整为1400为我修复了它。

嗨,Eugene…ping在第二个终端窗口中很好且一致。我甚至可以打开另一个连接并继续正常工作(直到该连接挂起)。服务器在所有这些过程中都处于活动状态,并且运行良好。@BrianArmstrong也有同样的问题!嗨,eduffy,我正在阅读这篇文章,并尝试了一些方法(),比如在ubuntu服务器和我用来连接的mac上禁用tcp窗口缩放。到目前为止还没有工作,但令人钦佩的是,我真的不确定我在做什么。如果你有其他的建议,那就太好了。谢谢你的回复!实际上,现在我想可能是Mac终端。如果我试图一次接收大量数据(因此我尽量避免使用
cat
),它会经常从我的MacBook上这样做。是的,我知道你的意思,一只长猫会挂几秒钟等等。这并不是说……这是一个5分钟的挂起,只需按下一个键。嗨,bdonlan,是的,这是个好主意。不幸的是,昨晚我在某个地方读到类似的东西后,尝试了这个方法。高达3'v,从挂起状态返回后不会产生任何警告/错误。如果不是一个完整的解决方案,这是一个很好的提示。谢谢亚伦。@BrianArmstrong我同意你的看法+1尽管如此,我一直使用screen,但如果您必须运行“昂贵”的命令,它对多任务处理非常有用。