У нас есть некоторое оборудование, которое мы устанавливаем в местах расположения наших клиентов, которое подключается к нашему ssh-серверу и устанавливает обратный ssh-туннель, чтобы мы могли получить доступ к нескольким клиентским системам для целей мониторинга.
Все работает нормально, пока не произойдет нечистое отключение сеанса SSH.
Когда это происходит, на нашем SSH-сервере порты, которые использовались обратным туннелем, остаются в режиме LISTENING, а когда наше удаленное оборудование в конечном итоге пытается автоматически переподключиться и заново установить свои туннели, происходит сбой с ошибкой
Предупреждение: переадресация удаленного порта для прослушивающего порта не удалась XXXX
Я проверил, была ли проблема с нашим SSH-сервером или клиентом, попробовав чистое разъединение и курс, который прекрасно освобождает порты. Когда я имитирую сбой соединения (например, отключаю Ethernet-порт клиентского оборудования), у нас возникает та же проблема, которую я описал выше.
Как правильно обращаться с этой ситуацией? Имейте в виду, что это обратные туннели, поэтому все, что происходит, должно быть сделано на сервере SSH. В идеале мне нужен сервер ssh, чтобы мгновенно понять, что сеанс SSH, на котором размещены туннели, не работает, и освободить порты, которые он использовал. Я предполагаю, что решение может включать в себя уничтожение соответствующего процесса SSH, но мне нужно быть осторожным с этим, потому что у нас есть несколько клиентов, подключающихся к одному и тому же серверу ssh, и я бы не хотел отключать их в автономном режиме.
Будучи настолько зрелым, я уверен, что SSHD имеет какую-то встроенную функцию, чтобы справиться с этим, но я просто не могу понять это.
Посоветуйте, пожалуйста, чтобы я не возвращался к администрированию окон Windows ...
К вашему сведению: я использую этот дистрибутив на основе Debian.
источник