Ssh

為什麼 SSH 會在其他流量不受影響的情況下凍結幾分鐘?

  • October 7, 2021

我注意到,當我通過慢速連結 SSH 連接到遠端機器時,在傳輸了相對大量的數據後,SSH 似乎“粘住”了。

例如,在連結上輸入文本很好,但執行ls /etc會凍結連接幾分鐘。

我會理解延遲是否是因為我正在最大限度地提高連接速度,並且在傳輸數據後它恢復正常,但是連接凍結的時間比您預期的實際涉及的數據量要長得多。

奇怪的是,如果我在同一台機器上打開兩個 SSH 連接,當其中一個凍結時,另一個仍然可以正常工作。所以我不能最大化連接速度,否則它們會同時凍結。

任何一個盒子或(據我所知)兩者之間的路由器都沒有活動的流量整形,因此不應該丟棄任何數據包以將平均傳輸速度保持在一定範圍內。

任何人都可以提出任何可能導致這種行為的事情,或者進一步檢查嗎?

scp與and發生同樣的事情sshfsscp報告一個巨大的傳輸速率(很多 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 流量的幾個原因之一。)

進一步閱讀

我有一個類似的問題:

  • ssh 連接保持已建立
  • 終端反复凍結和解凍
  • 終端凍結時,數據包在 SEND-Q 中可見
  • 冷凍時間約2-4分鐘
  • 解凍約30秒

原來我的路由器的韌體已經過時了!

  • 修復了韌體更新的問題

引用自:https://unix.stackexchange.com/questions/412192