这让我最近的编程真的很令人沮丧。
我现在在阿根廷,通过 SSH 连接到美国服务器。可以理解的是,这里的 ping 值有点高(平均大约 200 毫秒),所以当我通过 SSH 连接到服务器时,每次击键之间会有明显的延迟。这很好,很容易使用。
不太容易处理的是,大约每 5 分钟左右,SSH 就会完全挂起,大约需要 3-5 分钟才能返回提示。我知道服务器没有陷入困境,因为我可以在等待一个返回时轻松打开几个新连接(实际上这是我能够工作的唯一方法)。当 SSH 终于回来时,我可以看到它实际上一直在后台运行(大文件下载是测试这一点的好方法),但它只是没有更新我的屏幕。
有谁知道可能导致这种情况的原因?
其他一些事实:服务器是 Ubuntu,我正在连接 Mac OS X。我在 SSH 设置中打开了 keepalive。当我按住一个快速发送大量键的键(例如向左或向右箭头滚动)时,它最有可能挂起。事实上,我可以通过登录并按住“a”之类的任何键来可靠地重现挂起 - 在挂起之前它永远不会超过完整的“a”行。当我第一次在国际上连接时,这才开始,所以我假设它与那个(延迟?)有关,但不能肯定。
最佳答案
奇怪的。我无法帮助您解决您的问题,但我有一个提示可以让它不那么烦人:使用 screen(1)
.这将使另一端的 shell 保持事件状态,并且您可以在重新连接后继续执行任何操作。
如果你只需要在另一端运行一个命令,我建议将该命令作为选项传递给 ssh
(它将连接,运行命令,显示结果并断开连接)。
关于ssh 因高延迟连接而挂起(国际连接),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/885862/