Ssh
膩子端子隨機鎖
我有一個問題,即我的 Putty 會話在一段時間後會變得無響應。如果我正在跟踪某些東西,或者等待執行時不返回數據的程序,終端將鎖定凍結,即使數據隨後被返回。按鍵將導致顯著延遲,直到顯示屏突然更新並顯示後台發生的輸出。
這不是 CTRL+S 問題,這發生在沒有聚焦終端的情況下,而且似乎是隨機的。
我目前的解決方法是在終端的一角有一個時鐘外殼腳本輸出時間,但這只是讓我看一眼並判斷視窗是否被鎖定,以及它被鎖定了多長時間。這在移動游標時不起作用,並且在輸出大量數據或嘗試鍵入時會導致頭痛。
這是伺服器配置嗎?或者我應該與膩子客戶端一起研究什麼?這只發生在我可以告訴的一台伺服器上,所以我不確定。有解決方案嗎?
通常情況下,keepalive 數據包將在客戶端和伺服器之間發送。如果您的伺服器位於亞馬遜之類的地方,您將體驗到他們所謂的無狀態連接。這意味著 TCP keepalive 不能很好地工作。
在膩子中,您可以執行以下操作:
在您的會話屬性中,轉到連接並在發送空數據包以保持會話活動狀態下,將 Keepalives 之間的秒數(0 表示關閉)設置為例如 300(5 分鐘)。
在我的 Linux 客戶端上,我將以下內容放入我的 /etc/ssh/ssh_config 文件中:
ServerAliveInterval 300
ServerAliveCountMax 2
基本上,這會導致您的客戶端向另一端發送一個空數據包,並防止連接從伺服器端關閉。