Как соединение SSH переживает сетевой перезапуск?

Я использую носатый для отображения даты, батареи, CPU, поршня и информации о подкачке. Можно найти мой носатый файл здесь или смотреть на поток о носатых конфигурациях на форуме Linux дуги. Там Вы находите много различных конфигураций и снимков экрана носатых используемыми.

64
13.10.2014, 10:31
2 ответа

Это делает это, не делая ничего специального. Сетевые перезапуски за меньшее время, чем соединение TCP берут для таймаута, таким образом, соединение TCP переживает "отключение электричества" тем же путем, оно пережило бы любое переходное сетевое отключение электричества.

Единственная причина Windows не делает того же самого, состоит в том, потому что Windows конкретно сбрасывает соединения TCP, когда сетевой интерфейс понижается. Это - по крайней мере возможно, довольно глупая вещь сделать, потому что TCP был специально предназначен для выживания переходных сетевых отключений электричества.

70
27.01.2020, 19:32
  • 1
    David, затем это означает, что стек TCP/IP не перезапущен, правильно? Поскольку, если бы это было, сервер потерял бы след сокета SSH, и sshd дочерний процесс (благодарит Nils), завершился бы. Который приносит следующий вопрос: Какой сервис управляет сокетами? TIA. –  Serge Wautier 26.12.2011, 10:04
  • 2
    @David Schwartz - какие параметры я могу использовать для изменения тайм-аута? Как я узнаю текущее значение тайм-аута? И это настроено на стороне сервера или стороне клиента? –  Martin Vegter 11.11.2016, 10:46
  • 3
    @MartinVegter Вы действительно не хотите изменять параметры синхронизации соединения TCP, поскольку они должны скоординировать с обеих сторон и смешивающий с ними, мог влиять на способность TCP обработать потерю пакетов. Вы - более обеспеченная разработка системы в целом для признания потери соединения TCP беспрепятственно путем восстановления соединения. –  David Schwartz 11.11.2016, 18:06

SSHD разветвляет дочерний процесс на соединении. Этот дочерний процесс не умрет, если или SSHD или целая сеть будут перезапущены. Это - причина, почему можно обновить ssh и/или его конфигурацию, сделать a service sshd restart и все еще свяжитесь со своей старой ssh-сессией со старыми настройками. Кроме этого ssh восстанавливается хорошо с отключений электричества небольшой сети.

11
27.01.2020, 19:32
  • 1
    SSH даже не знает о 'отключениях электричества небольшой сети' по причине, приведенной David Schwartz. Это не свойство SSH конкретно. –  user207421 26.12.2011, 23:40
  • 2
    я не уверен, нет ли также определенного программирования, включенного на ssh-стороне. В основном все сервисы TCP должны быть отказоустойчивыми - многие не. Должен быть дополнительный механизм повторной попытки, вовлеченный в приложение - затем, сервис может даже пережить "средние" отключения электричества также. –  Nils 26.12.2011, 23:59
  • 3
    Как объяснено EJP, Ваш ответ верен, но не важен. –  Gilles 'SO- stop being evil' 27.12.2011, 01:21
  • 4
    Этот ответ был полезен для меня, потому что он добавил понимание о какой sshd делает, чтобы не понижаться на service sshd restart. Если Вы обновляете sshd (обновление системы защиты и т.д.), дочерние процессы все еще работали бы на исходном коде (предварительное обновление), но продолжат предоставлять услугу вместо того, чтобы быть прерванным. Я предполагаю доступность сокета слушания для основного sshd процесс очень кратко прерван, однако, когда первые концы дочернего процесса и сетевой интерфейс на мгновение указывают на порт, как закрыто. –  allquixotic 14.12.2013, 07:03
  • 5
    @Nils я знаю, что Вы записали это. Но это делает среднего читателя, думающего, что разветвление релевантно. Но то же самое также происходит для программ, которые не разветвляются. Ваш ответ - что-то как: "Поскольку сталь более прочна, чем железо, яблоками является красное" спасибо –  Daniel Alder 27.11.2014, 17:07
  • 6
    @Nils я знаю, что Вы записали это. Но это делает среднего читателя, думающего, что разветвление релевантно. Но то же самое также происходит для программ, которые не разветвляются. Ваш ответ - что-то как: "Поскольку сталь более прочна, чем железо, яблоками является красное" спасибо –  Daniel Alder 27.11.2014, 17:07

Теги

Похожие вопросы