Чому ssh не виявляє відключення?


1

Якщо я SSH перейду на віддалений хост на OS X, а потім закрию кришку та подорожую додому, відкриваючи кришку, OS X іноді досить швидко зазначає, що сталося відключення (із повідомленням "Розбита труба"), але часто ssh просто висить. Я думав додати параметри збереження TCP, однак, сторінка man відзначає:

За замовчуванням - "так" (для надсилання повідомлень про збереження TCP), і клієнт помітить, якщо мережа падає або віддалений хост помирає.

Чи можна щось зробити або перевірити? Чому це працює?


Як кажуть: Для танго потрібно два, тож не матер, якщо тримати сторону мака вгору та живу, оскільки інша сторона вниз, вся справа внизу.
— Ruskes

Відповіді:



0

Якщо ви подорожуєте зі свого офісу до дому, ваш MacBook буде відключений від будь-якої мережі.

Навіть якби ssh надіслав збереження, сервер його не отримає (тому що ваш комп'ютер офлайн).

Найкраще, що ви можете зробити: вийдіть із сеансу ssh перед поїздкою, це принаймні уникне зависання ssh.


На головній сторінці зазначається, що "клієнт помітить, якщо мережа виходить з ладу" - навіть коли мережа створюється в режимі резервного копіювання (зазвичай це займає лише кілька секунд після відкриття кришки), вона все ще не помічає, що з'єднання недійсне.
— Танатос

Можливо, це помітить, лише якщо працює термінал. У режимі сну клієнт може не виявити, що мережа вийшла з ладу.
— lauhub

Я думаю, що він не помітить, коли кришка закрита, а ноутбук спить. Але як тільки кришка знову відкриється, і система знову заживе ... незабаром після того, як наступний TCP keepalive потрапить на дріт, ми повинні усвідомити, що з'єднання мертве, ні?
— Танатос

Можливо, це помилка. Якщо ви подаєте звіт про помилку на bugreport.apple.com, вони вкажуть, чи це відома проблема чи ні.
— lauhub
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.