有很多关于 SSH 连接延迟的问题,通常可以通过禁用 DNS 查找来解决。不幸的是,这似乎不是我的问题。
我们的开发服务器通过 SSH 和 Samba 访问。打开与服务器的连接(SSH 或 Samba)需要很长时间。通过 Windows 访问 Samba 共享基本上是不可能的,因为存在超时。使用 smbclient 可以,但需要很长时间。打开 SSH 连接时,系统会立即提示我输入密码,按下 Enter 键后,终端会立即显示 MOTD。然后提示出现大约需要一分钟。
我通过 SSH 和 Samba 连接时观察了服务器的负载,没有发现任何异常。没有任何异常运行和占用内存和 CPU 之类的东西。我不知道这种延迟可能来自哪里。我已经UseDNS no
在 sshd_config 和proxy_dns = no
smb.conf 中尝试过,但无济于事。
任何关于导致这种情况的原因的想法都将不胜感激!
更新:很抱歉,我已经离开几周了,在此期间,有问题的服务器已被其他较新的系统取代,到目前为止,这些系统没有出现同样的问题。不幸的是,这使我无法检查这里提出的任何建议,但我仍然感谢您的帮助!
答案1
可能是磁盘出了问题。检查wa
中的 (iowait) 统计信息top
,或安装iotop
,和/或以正常方式检查磁盘。
要从 sshd 中获取一些合理的调试信息,只需在 /etc/ssh/sshd_config 中将日志级别设置为 DEGUG2 之类的级别,然后tail -f /var/log/auth.log
查看客户端连接上发生的情况。
答案2
也许这是与系统中的熵有关的问题。无头服务器缺乏输入来生成足够的随机数,有时会延迟 ssh 连接。
经常检查 /proc/sys/kernel/random/entropy_avail 中的数字,如果它几乎总是低于 150-200,请尝试安装任何类似 haveged 或 rng-tools 的工具