殺死 PuTTY 中之前的所有會話

殺死 PuTTY 中之前的所有會話

我已經打開了到另一台伺服器的 telnet 連接,但是當我關閉 PuTTY 時,它看起來仍然像登入到另一個終端一樣。我認為每次 PuTTY 空閒時都會發生這種情況。有人知道如何避免這種情況嗎?我嘗試殺死該進程並重新啟動計算機,但仍然相同,並且我可以保證沒有其他人使用該帳戶登入。

答案1

這聽起來像是伺服器位於有點過於嚴格的防火牆後面。當連線空閒時間過長時,防火牆會「忘記」它並從狀態表中刪除 – 即使兩台主機上的 TCP 層仍然認為該連線處於活動狀態。

發生這種情況時,防火牆不再允許屬於該連線的任何資料包 - 常規資料包,甚至是應該表明連接已關閉的 TCP FIN 或 TCP RST 資料包。

(通常這個超時時間應該設定為至少TCP 連線需要幾個小時,但某些供應商(例如 Mikrotik RouterOS)預設設定非常短的逾時。

作為用戶,您可以嘗試在 PuTTY 中啟用“keepalive”功能作為解決方法 - 即發送虛擬資料包,以便防火牆認為連接仍在使用中:

  • 聯繫保活之間的秒數:大約 60 或 300 秒。 (這使用特定於協定的資料包,但它應該為 Telnet 工作。

  • 聯繫低階 TCP 選項→ [✔]啟用 TCP 保活。 (這適用於任何協議,但不允許您指定發送保活資料包的頻率;它可能在小時範圍內。)

相關內容