什么会导致ssh会话缓慢?[关闭]


46

我在远程主机上使用ssh,但是终端性能很差。我输入的符号不会立即显示,但会有些延迟。有时延迟后一次显示两个符号。


Mosh是一个很好的ssh替代品,可以防止出现此问题:mosh.mit.edu
Steven C. Howell

6
ssh服务器...为什么关闭了?显然是服务器问题。当然,这里的某些答案是基于观点的,但这个问题应该可以。
j0h

5
为什么这个问题关闭?以我为例,它是def服务器端-封闭的UDP端口67/68。在通用Vultr映像上启用了DHCP,它试图不断更新发布IP,但被CSF阻止。允许这些端口似乎可以解决该问题,并再次提供快速的SSH(和其他网络服务)。如果使用该图像或其他默认/相似的VPS图像,请留意。
dhaupin

5
显然,这是一个(常见的)网络问题。我相信没有理由将其关闭,这绝对不是题外话。即使(尤其是)问题可能有多种原因难以识别时,也是如此。
mivk

Answers:


17

高延迟是ssh性能不佳的另一个原因。我强烈建议使用mtr作为traceroute的更好替代。它应该能够使您了解网络问题可能发生的位置。


13

如果不需要,禁用X11转发(ssh -x),启用压缩(ssh -C)也可以加快会话速度。


9

我可以想到两个可能的原因:

  1. 连接上的数据包丢失
  2. 服务器上的高负载。

3

我试图通过发现终端很好来衡量网络性能。发生了什么事?

我们有两个Internet通道路由器之间的负载平衡。有时它会通过wan1和wan2路由我的ssh通信。我建议,只有一个频道有问题。因此,我分别使用mtr(出色的工具!)测量了两个渠道的网络性能。

是的 wan2具有21个110毫秒的跃点,而wan1仅具有21毫秒的15个跃点!wan2延迟是问题所在。


3

使用9的Compression和CompressionLevel。这应该会有所帮助。您可以在/ etc / ssh / ssh_config中配置这些参数。但是,如果实际的网络非常差,这种技巧将无济于事。


2

出现此现象的最明显原因是链路饱和或丢包。从工作站到要插入的计算机有几跳?您是否分析了跟踪路由(如果适用)?


2

如果您在长胖管道(高带宽+高延迟)上使用OpenSSH,请确保双方都至少使用4.7版,因为它包含一些使OpenSSH使用更大tcp窗口大小的修复程序。

 * The SSH channel window size has been increased, and both ssh(1)
   sshd(8) now send window updates more aggressively. These improves
   performance on high-BDP (Bandwidth Delay Product) networks.

如果您想最大限度地利用连接,这可能很重要,因为否则发送者可能必须等待确认后才能继续发送。


1

正如其他人已经说过的,它可能来自延迟,网络丢失,服务器速度慢。
有时您会在一种类型中看到2个字符,因为现代TCP堆栈使用一种称为Naggle的算法。


1
Nagle的算法始终在诸如telnet和SSH之类的交互式应用程序上禁用
LapTop006,2009年

1
您没有足够的信息说“总是”。我们不知道他正在使用什么SSH客户端/服务器。我们不知道他正在运行的操作系统。对于某些操作系统,内核级别的设置可能会对应用程序级别设置的TCP_NODELAY产生影响。
半径

1

也可能是某些SSH Brute Force尝试限制了您的连接。每当我的会话运行缓慢时,我都会检查日志,并且在很多情况下,有人会尝试疯狂的密码。


1

DNS配置错误会导致此情况。一旦登录,服务器将响应良好,并且上传和下载文件的速度相当快,但是SSH登录会很慢。


1
我发现我可以将/ etc / hosts中的IP条目放置在SSH登录速度慢的服务器上,并且通常可以加快初始连接的速度。但是真正的解决方法是使DNS正常工作。
ServerChecker 2010年

1

要看的一件事就是服务器内存。我正在运行具有256Mb内存的Ubuntu VM,SSH确实很慢。将其加倍至512Mb可解决此问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.