如何在速度慢或不稳定的连接上使用 ssh?

如何在速度慢或不稳定的连接上使用 ssh?

我正在处理一个非常慢的 shell 连接。它在云端,我离服务器很远。我的连接有时也会中断,因为它是通过互联网,而且我可能还在使用共享 Wifi 或 3G。有没有办法可以立即看到我输入的内容?尝试输入命令并等待每个字符真是太糟糕了。

答案1

尝试莫什

Mosh(手机壳)
远程终端应用程序允许漫游、支持间歇性连接并提供智能本地回声和用户按键的行编辑。

Mosh 是 SSH 的替代品。它更强大、响应更快,尤其是在 Wi-Fi、蜂窝和长距离连接上。

Mosh 是免费软件,适用于 GNU/Linux、FreeBSD、Solaris、Mac OS X 和 Android。

答案2

dmourati 答案的替代方法(也是补充):使用screentmux或其他方法,在断开连接时保持会话处于活动状态。(您只需在重新连接后重新连接到会话,即可看到离开时的终端,即使使用全屏程序 [vi 等])。它还有许多其他好处(与同事共享会话等)(正如 Mosh 自己的常见问题解答中所述:

问:为什么我的终端的回滚缓冲区不完整?

Mosh 1.2 仅同步终端的可见状态。Mosh 1.3 将提供完整的回滚支持;请参阅此问题以及从那里链接的其他问题。目前,解决方法是在远程端使用 screen 或 tmux。

并且您还应该使用rsync它来复制文件,而不必在连接中断时通过网络重新发送已发送的部分。

答案3

您应该了解延迟/瓶颈在哪里。您应该尝试更好地访问基础设施……无论是本地还是提供商端。您将重要或关键的会话包装在tmux多路复用screen器中……

请给我们一些数字。简单的 SSH 会话只有在连接特别差的情况下才会出现问题……我不得不从飞机通过 VPN 仍然没有遇到太多麻烦。这是一个持续存在的问题吗?这说明了什么traceroute

答案4

对于此主题的未来读者,@lowellheddings 在其博客,同时使用屏幕,可以帮助克服这个问题:

您可以配置 ssh 客户端每隔几秒自动发送一个协议无操作代码,这样服务器就不会断开您的连接。在其他客户端中,此设置有时称为 Keep-Alive 或 Stop-Disconnecting-So-Much。将以
下行添加到 /etc/ssh/ssh_config 文件:
ServerAliveInterval 60
...

相关内容