使用ssh遠程服務器的時候,總是會去百度查一些命令資料的什么的,然而你一不留神你的ssh連接就已經處在假死狀態了
1、依賴ssh客戶端定時發送心跳。
打開
sudo vim/etc/ssh/ssh_config
添加
ServerAliveInterval 20
ServerAliveCountMax 999
即每隔20秒,向服務器發出一次心跳。若超過999次請求,都沒有發送成功,則會主動斷開與服務器端的連接。
sudo service ssh restart
重啟
2、更一勞永逸的方法是:更改服務器端,即在ssh遠端。
打開
sudo vim/etc/ssh/sshd_config
添加
ClientAliveInterval 30
ClientAliveCountMax 6
ClientAliveInterval表示每隔多少秒,服務器端向客戶端發送心跳,是的,你沒看錯。
sudo service ssh restart 重啟
下面的ClientAliveInterval表示上述多少次心跳無響應之后,會認為Client已經斷開。
所以,總共允許無響應的時間是60*3=180秒。
上述配置后,我做了個簡單測試。連接米國的vps,打開ssh后,不做任何操作,目前已經維持連接3天整,沒有任何問題。中間還經歷了幾次短時間斷網(幾十秒),都自動恢復了。