【发布时间】:2010-11-17 09:51:00
【问题描述】:
我需要在两台运行 Centos v5 的 Linux 机器之间创建 ssh 连接,但延迟可能高达 30 秒。我发现,如果我通过模拟 7 秒或更长时间的延迟来人工测试接近此配置的东西:
tc qdisc add dev eth0 root netem delay 7s
当我尝试时:
ssh -n -o ConnectTimeout=0 WilliamKF@centos5Machine whoami
大约 1 分 23 秒后失败:
Connection closed by 10.35.50.114
请注意,ConnectTimeout=0 表示永不超时。此外,模拟 6 秒的延迟会在大约 1 分 32 秒后成功实现 ssh。
面对 Linux 上极高的延迟,我能做些什么来让 ssh 正常工作吗?为什么 ssh 在这个阈值下会失败
【问题讨论】:
-
whoami应该在回复后结束。 -
@J-16 SDiz whoami 与问题无关。替换您希望远程调用的任何命令。
-
呃...您可能会更好地使用面向行的协议(或至少是面向行的客户端)。与基于行或面向缓冲区的机制相比,逐字符协议的超高延迟会更多令人抓狂。不幸的是,我想不出一个。
-
请问您尝试通过 SSH 连接到什么样的机器?延迟听起来像是某种太空探测器:-)我实际上正在处理一个类似的问题-我正在尝试连接到虚拟机(为了优雅地停止某些进程),该虚拟机非常繁忙以至于连接尝试保持交换密钥时超时。你能解决你的问题吗?
-
当延迟很大时,我们使用 inetd。