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

Wil*_*mKF 5 ssh latency tcpip tcpdump

我需要在运行 Centos v5 的两台 Linux 机器之间创建 ssh 连接,但延迟可能高达 25 秒。我发现,如果我通过使用以下方法模拟 7 秒或更长时间的往返延迟来人为地测试接近此配置的内容:

tc qdisc add dev eth0 root netem delay 7s
Run Code Online (Sandbox Code Playgroud)

当我尝试:

ssh -n -o ConnectTimeout=0 WilliamKF@centos5Machine whoami
Run Code Online (Sandbox Code Playgroud)

它在大约 1 分 23 秒后失败:

Connection closed by 10.35.50.114
Run Code Online (Sandbox Code Playgroud)

请注意,ConnectTimeout=0 表示永不超时。此外,模拟 6 秒的往返延迟会导致 ssh 在大约 1 分 32 秒后成功。

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

Eve*_*ett 2

简而言之,如果每个数据包有 30 秒的延迟,您永远不会等待足够长的时间。