在鏈接遠程SSH服務的時候,常常會發生長時間後的斷線,或者無響應(沒法再鍵盤輸入)。 vim
整體來講有兩個方法: 服務器
一、依賴ssh客戶端定時發送心跳。 ssh
putty、SecureCRT、XShell都有這個功能,可是目測不太好用。 測試
此外在Linux下: spa
1
2
3
4
5
|
#打開
sudo
vim
/
etc
/
ssh
/
ssh_config
# 添加
ServerAliveInterval
20
ServerAliveCountMax
999
|
即每隔20秒,向服務器發出一次心跳。若超過999次請求,都沒有發送成功,則會主動斷開與服務器端的鏈接。 vps
二、更一勞永逸的方法是:更改服務器端,即在ssh遠端。 rem
1
2
3
4
5
|
# 打開
sudo
vim
/
etc
/
ssh
/
sshd_config
# 添加
ClientAliveInterval
30
ClientAliveCountMax
6
|
ClientAliveInterval表示每隔多少秒,服務器端向客戶端發送心跳,是的,你沒看錯。 it
下面的ClientAliveInterval表示上述多少次心跳無響應以後,會認爲Client已經斷開。 table
因此,總共容許無響應的時間是60*3=180秒。 import
上述配置後,我作了個簡單測試。鏈接米國的vps,打開ssh後,不作任何操做,目前已經維持鏈接3天整,沒有任何問題。中間還經歷了幾回短期斷網(幾十秒),都自動恢復了。