Linux

ServerAliveInterval 和連接重置

  • August 22, 2016

如果我執行:

sftp -oServerAliveInterval=10 server-2

連接已建立。但是在將值從 10 增加(減少)到 1 之後:

sftp -oServerAliveInterval=1 server-2

我無法連接:

Connecting to server-2...
Connection closed by 10.0.1.10
Couldn't read packet: Connection reset by peer

任何想法為什麼?

添加了-vvv:

debug1: SSH2_MSG_SERVICE_ACCEPT received
debug2: key: id_rsa (0xxxxxxxxxxx)
Connection to 10.0.1.10 timed out while waiting to read
Couldn't read packet: Connection reset by peer

解決了。由在 Windows 機器上執行的應用伺服器中的內部錯誤引起的問題

但是在將值從 10 增加(減少)到 1 之後:

sftp -oServerAliveInterval=1 server-2

每次讀取後設置ServerAliveInterval1秒啟動計時器,如果沒有其他數據,它會查詢伺服器以獲取響應。如果定義的答案數量不會返回(ServerAliveCountMax在這種情況下也很重要),則連接將關閉。

這也與TCPKeepAlive, 基本相同,沒有太多負擔。TCPKeepAlive僅當無效並且您看到很多連接中斷時才應使用上述選項。

在您的問題中提及您為什麼這樣做也會有所幫助。

引用自:https://unix.stackexchange.com/questions/265720