我注意到,当我通过慢速链接 SSH 连接到远程机器时,在传输了相对大量的数据后,SSH 似乎“粘住”了。
例如,在链接上输入文本很好,但运行ls /etc
会冻结连接几分钟。
我会理解延迟是否是因为我正在最大限度地提高连接速度,并且在传输数据后它恢复正常,但是连接冻结的时间比您预期的实际涉及的数据量要长得多。
奇怪的是,如果我在同一台机器上打开两个 SSH 连接,当其中一个冻结时,另一个仍然可以正常工作。所以我不能最大化连接速度,否则它们会同时冻结。
任何一个盒子或(据我所知)两者之间的路由器都没有活动的流量整形,因此不应该丢弃任何数据包以将平均传输速度保持在一定范围内。
任何人都可以提出任何可能导致这种行为的事情,或者进一步检查吗?
scp
与and发生同样的事情sshfs
,scp
报告一个巨大的传输速率(很多 MB/秒,然后速度慢慢回落stalled
几分钟,然后如果我幸运的话,它会重复直到文件完成传输。) sshfs
工作但通常(并非总是)在保存文件后,挂载点会在几分钟内无响应,暂时阻止任何尝试访问它的程序。
编辑:我尝试使用iperf
并获得一些有趣的统计数据:
Local: 0.0- 0.9 sec 256 KBytes 2.25 Mbits/sec
Remote: 0.0- 7.0 sec 256 KBytes 302 Kbits/sec
Local: 0.0-15.9 sec 1.00 MBytes 529 Kbits/sec
Remote: 0.0-16.0 sec 1.00 MBytes 524 Kbits/sec
看起来在一定数量的数据以下,本地端发送的速度比远程接收的快很多。我想这毕竟不是 SSH 问题。我将调查一些可能会调整此设置的 TCP 设置,但如果有人确切知道,请告知!
您的 SSH 连接超出了客户端和服务器之间某处的 MTU 大小,并且路径最大传输单元发现不起作用。(这是以安全的名义全面阻止 ICMP 流量的几个原因之一。)
进一步阅读
我有一个类似的问题:
原来我的路由器固件已经过时了!