Назад | Перейти на главную страницу

autossh не удалось воссоздать туннель из-за другого времени

У меня проблемы с autossh при коротких сетевых прерываниях (до 60 с). Это происходит ежедневно из-за отключения сети моим интернет-провайдером утром. Даже с использованием autossh туннель ssh остается сломанным до перезапуска вручную. Если я тестирую его с более длительным отключением, autossh восстанавливает туннель нормально.

При запуске autossh с «AUTOSSH_DEBUG = 1» во время короткого отключения отображается следующее:

Warning: remote port forwarding failed for listen port

Глядя в то же время на ssh-сервер, я вижу с помощью команды "netstat -pln", что старый порт хранится там около 60 секунд, пока наконец не исчезнет. Если клиент пытается повторно подключиться в течение этого времени, он терпит неудачу с сообщением выше, он не воссоздает туннель, а также не повторяет попытки. При повторном подключении после исчезновения порта на сервере ssh успешно воссоздает туннель.

Есть ли способ отложить повторное подключение клиента autossh? Есть ли способ повторить попытку повторного подключения, если оно не удалось (я думаю, в настоящее время повторной попытки нет, потому что это классифицируется как предупреждение)? Есть ли способ сократить время до удаления оставшегося порта с помощью sshd?

Моя среда - это Debian Squeeze на стороне клиента и Wheezy на стороне сервера.

РЕДАКТИРОВАТЬ: Забыл упомянуть, это происходит, если я использую autossh без порта управления "-M 0" или с эхо-портом "-M 2000: 7" или с полным парным циклом управления "-M 2000".

Вы можете установить опцию ssh ExitOnForwardFailure на yes, чтобы ssh разорвал соединение, если он не может настроить все запрошенные динамические, туннельные, локальные и удаленные перенаправления портов.

Autossh воссоздает новое соединение ssh до тех пор, пока не удастся выполнить пересылку.