ssh 復用連線

2021-09-29 09:22:59 字數 1204 閱讀 8799

1.在生產環境下面,如果存在較多的ssh連線,無論是人連線上去的還是**建立的連線,都會消耗宿主機上面的資源。會造成宿主機的卡頓,io增大。

2.頻繁地建立ssh連線,需要不停地輸入密碼。

我們需要把大量的連線數降低到乙個合理的範圍內。

復用連線

這個方案可以第一步解決這種問題,具體的命令:

ssh -o controlpath=/home/$user/.ssh/$local_path/%l-%h:%p -o controlmaster=yes -o controlpersist=yes $user_name@$host_name
上面的命令裡面的local_path 可以隨便建立,只是方便管理而已

controlmaster 和 controlpersist 這兩個引數必須加上,如果不加上的話,不會建立unix socket來監聽本地ssh連線。

這個的原理我感覺應該是

這個建立的unix socket 當**,controlmaster這個程序擁有這個unix socket,之後所有想要復用這個ssh連線,都會跟unix socket連線,然後unix socket 再把資訊發到真正的ssh 連線。

設定maxstartups

這個變數是在

/etc/ssh/sshd_config
檔案裡面,用冒號分割了三個數字,含義如下:

第乙個數字:可以同時存在的沒有授權的ssh連線數

第二個數字:如果同時存在的沒有授權的ssh連線數超過了第乙個數字,那麼後面沒有授權的ssh登入請求有 (第二個數字/100)%的機率拒絕掉。

第三個數字:如果同時存在的沒有授權的ssh連線數到達了這個數字,那麼後面所有沒有授權的ssh登入請求都會被拒絕掉。

遇到過unix socket name too long這種錯誤,這個是controlpath裡面的unix socket 名字太長了,在盡量保證unix socket name 唯一性的前提下,最好盡量縮短unix socket name,限制不太清楚,好像是104-108char

如果想復用連線,後面的連線必須要指定controlpath才能使用原來的連線。

maxstartups這個變數,man裡面說的是沒有授權,現在還不太理解沒有授權是什麼概念。

http 連線復用

定義 http 1.0每次請求都需要建立新的tcp連線,連線不能復用。http 1.1新的請求可以在上次建立的tcp連線之上傳送,連線可以復用。優點 減少重複進行tcp三次握手的開銷,提高效率。注意 在同乙個tcp連線中,新的請求需要等上次請求收到響應後,才能傳送。實現 主要的思路 在傳送http的...

TCP連線復用

網路 看到一陌生名詞,記錄一下 tcp連線復用技術通過將前端多個客戶的http請求復用到後端與伺服器建立的乙個tcp連線上。這種技術能夠大大減小伺服器的效能負載,減少與伺服器之間新建tcp連線所帶來的延時,並最大限度的降低客戶端對後端伺服器的併發連線數請求,減少伺服器的資源占用。一般情況下,客戶端在...

保持ssh連線

終端軟體 better terminal emulator pro用手機ssh到伺服器上,但是如果隔1 2分鐘沒 的clientaliveinterval 60 clientalivecountmax 1 這 樣,ssh server 每 60 秒就會自動傳送乙個訊號給 client,而等待 cli...