проверить и автоматически восстановить обратный туннель SSH - PullRequest
0 голосов
/ 31 августа 2018

Я устанавливаю обратный туннель с $ ssh -fN -R 19999:localhost:22 -i aws-mycert.pem ubuntu@my.dyndns.com и должен убедиться, что он работает и работает даже после сброса сервера. Как я могу проверить соединение в скрипте cron, который затем автоматически восстанавливает соединение при необходимости?

1 Ответ

0 голосов
/ 31 августа 2018

Простой способ сделать это - использовать Netcat. Команда nc -z localhost 19999 проверит, есть ли что-то в локальном порте 19999 прослушивания, поэтому вы можете использовать: nc -z localhost 19999 || ssh -fN -R 19999:localhost:22 -i aws-mycert.pem ubuntu@my.dyndns.com для воссоздания туннеля, если это необходимо.

Однако, это только проверяет, что туннель работает, но он может быть устаревшим. Лучшее решение - использовать autossh . Просто установите его на свой компьютер и используйте:

autossh -M 0 -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" -fN -R 19999:localhost:22 -i aws-mycert.pem ubuntu@my.dyndns.com

Тогда вам просто нужно запустить эту команду при запуске сервера, что зависит от вашего дистрибутива.

Подробнее об использовании autossh вы можете узнать по адресу https://www.everythingcli.org/ssh-tunnelling-for-fun-and-profit-autossh/.

...