Linux
ServerAliveInterval 和連接重置
如果我執行:
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
每次讀取後設置
ServerAliveInterval
為1
秒啟動計時器,如果沒有其他數據,它會查詢伺服器以獲取響應。如果定義的答案數量不會返回(ServerAliveCountMax
在這種情況下也很重要),則連接將關閉。這也與
TCPKeepAlive
, 基本相同,沒有太多負擔。TCPKeepAlive
僅當無效並且您看到很多連接中斷時才應使用上述選項。在您的問題中提及您為什麼這樣做也會有所幫助。