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.