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

时间:2009-05-20 02:09:07

标签: ssh latency freeze

这使得我的编程最近非常令人沮丧。

我现在在阿根廷通过SSH连接到美国服务器。可以理解的是,这里的ping有点高(平均大约200ms)所以当我进入服务器SSH时,每次击键之间会有一个明显的滞后。这很好,也很容易使用。

易于使用的是大约每5分钟左右,SSH将完全挂起并花费大约3-5分钟来返回提示。我知道服务器没有陷入困境,因为我可以轻松打开几个新的连接,而我正在等待一个人返回(实际上这是我能够工作的唯一方法)。当SSH终于回来时我可以看到它实际上已经在后台工作了(大文件下载是测试这个的好方法)但它只是没有更新我的屏幕。

有没有人知道可能导致这种情况的原因?

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

7 个答案:

答案 0 :(得分:4)

奇。我无法帮助解决您的问题,但我有一个提示,以减少烦恼:使用screen(1)。这将使你的shell保持活着,你可以在重新连接后继续你正在做的事情。

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

尝试调整TCP window size

答案 3 :(得分:0)

我习惯于使用高延迟链接 - 600毫秒。它很慢但我很少遇到任何问题。首先 - 打开另一个终端窗口,ping您的服务器并观察连接。告诉我们你的看法。

答案 4 :(得分:0)

尝试使用一些详细的标记(ssh -vv [vv] somehost)进行sshing,并查看它挂起的时间周围是否有任何指示。

答案 5 :(得分:0)

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

旧路由器和新路由器都是Linksys WRT54G,所以我不确定问题是什么。希望它可以帮助别人!

答案 6 :(得分:0)

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