У мене є невелика локальна мережа, яка копіює на захопленому WiFi, і я використовую sshна OS X з -oServerAliveInterval=240і PuTTY 0.62 в Windows 7 Professional для встановлення з'єднань з моїми Linode, Hetzner та іншими серверами.
У програмі PuTTY я вибираю Connection→ Sending of null packets to keep session activeдо 240. Enable TCP keepalives (SO_KEEPALIVE option)Вимкнено, як за замовчуванням.
Коли мій Інтернет тимчасово не працює приблизно на хвилину (доведеться повторно підтвердити автентифікацію на захопленому порталі), PuTTY майже завжди втрачає всі відкриті сеанси ssh, які я маю, і особливо ті, де була якась діяльність, але OpenSSH на OS X ніколи не втрачає жодних сеансів, якщо мій Інтернет завантажується протягом приблизно хвилини-двох, навіть якщо я насправді намагаюся набрати щось у ssh, і не бачу відповіді протягом цілих 60 секунд, поки моє з'єднання знову не активується. (Тож я точно знаю, що НАТ-стани завжди зберігаються.)
Чи можу я зупинити Windows / PuTTY від попереднього відмови від хороших підключень?
Мені здається, ніби SO_KEEPALIVE або щось подібне насправді увімкнено за замовчуванням у Windows, і час очікування виявлення застарілих з'єднань занадто малий. Я хотів би збільшити його на щось більше, ніж на пару секунд, аналогічно тому, як OS X не застрахована від цих коротких тимчасових відключень, якщо відключення становить лише пару сотень секунд і нижче значення -oServerAliveInterval(раз ServerAliveCountMax).
moshкраща альтернатива.)