5

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

我现在在阿根廷,通过 SSH 连接到美国服务器。可以理解的是,这里的 ping 值要高一些(平均大约 200 毫秒),所以当我通过 SSH 连接到服务器时,每次击键之间都会有明显的延迟。这很好,很容易使用。

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

有谁知道可能是什么原因造成的?

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

4

7 回答 7

4

奇怪的。我不能帮你解决你的问题,但我有一个小窍门让它不那么烦人:使用screen(1). 这将使您在另一端的外壳保持活动状态,并且您可以在重新连接后继续您正在做的任何事情。

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

于 2009-05-20T09:42:05.823 回答
1

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

于 2009-10-07T16:18:08.493 回答
0

尝试调整您的TCP 窗口大小

于 2009-05-20T02:12:30.803 回答
0

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

于 2009-05-20T02:20:57.777 回答
0

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

于 2009-05-20T05:52:40.877 回答
0

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

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

于 2009-05-21T16:20:08.447 回答
0

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

于 2011-03-22T02:42:49.557 回答