Ssh
為什麼 SSH 會在其他流量不受影響的情況下凍結幾分鐘?
我注意到,當我通過慢速連結 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 流量的幾個原因之一。)
進一步閱讀
我有一個類似的問題:
- ssh 連接保持已建立
- 終端反复凍結和解凍
- 終端凍結時,數據包在 SEND-Q 中可見
- 冷凍時間約2-4分鐘
- 解凍約30秒
原來我的路由器的韌體已經過時了!
- 修復了韌體更新的問題