AutoSSH для надежного туннеля

Я пытаюсь запустить ssh-туннель от A до B и запустить его, несмотря на такие вещи, как: период сеть /wifi падает на A и перезагрузка удаленного сервера на B. Мой ssh-туннель начинает использовать сценарий upstart на A с запуском события (net IFACE=eth0)

Я нашел autossh, который должен обрабатывать подобные вещи, но у меня возникли некоторые проблемы с его работой. Выскочка выполняет:

autossh -M 0 -2qTN -o "ServerAliveInterval 30" -o "ServerAliveCountMax 2" -L 5678:somehost:5678 user@B

Однако когда я вхожу в B и убиваю -9 в этом туннельном сеансе, autossh просто завершается с "Соединение с B закрыто удаленным хостом". Это не то, что я ожидал от Autossh.

Любой совет, как это настроить? Какие-либо утилиты для мониторинга сервисов с графическим интерфейсом, которые по сути отображают зеленый свет, если сервис работает?

Благодарю.

1 ответ

Возможно сочетание с экраном поможет. Для автоматического переподключения вам также понадобится ключ аутентификации.

Я создал псевдоним: псевдоним sshtunnel='TERM=xterm ssh имя_сервера -a -x -t /opt/local/bin/screen -xRR -A -e^Zz -U -O -S tunnelToServer' Экран гарантирует, что вы завершите сеанс является живым.

Последний шаг - создание скрипта, который проверяет хост и снова запускает псевдоним: $ while:; делать пока! ping -c1 -t1 сервер>/dev/null; спать 10; сделанный; sshtunnel; echo Соединение с сервером прервано на $(дата); спать 10; сделанный

Это должно пережить все падения сети. Вы также можете поиграть со временем сна.

Если вы вызовете screen -ls, вы найдете сеанс экрана с именем tunnelToServer.

Другие вопросы по тегам