面对巨大的(25秒)延迟,如何使用 ssh?

面对巨大的(25秒)延迟,如何使用 ssh?

我需要在两台运行 Centos v5 的 Linux 机器之间建立 ssh 连接,但延迟可能高达 25 秒。我发现,如果我通过模拟 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 秒的往返延迟会导致 ssh 在大约 1 分 32 秒后成功。

在 Linux 上延迟极高的情况下,我能做些什么让 ssh 正常工作?为什么 ssh 会在此阈值下失败?当我运行 tcpdump 时,我没有看到任何明显的错误,大约有 51 个数据包,tcpdump 的哪些数据包在这里有用?成功只需要大约 41 个数据包。

答案1

简短的回答是,每个数据包 30 秒的延迟让您永远无法等待足够长的时间。

相关内容