Используя VPS к портам передачи позади NAT:
for((;;)) { ssh -R 2222:127.0.0.1:22 vi@vi-server.org; sleep 10; }
Когда соединение повреждается так или иначе, и оно снова соединяется.
Warning: remote port forwarding failed for listen port 2222
Linux vi-server.no-ip.org 2.6.18-92.1.13.el5.028stab059.3 #1 SMP Wed Oct 15 13:33:44 MSD 2008 i686
Я ввожу:
vi@vi-server:~$ killall sshd
Connection to vi-server.org closed by remote host.
Connection to vi-server.org closed.
Linux vi-server.no-ip.org 2.6.18-92.1.13.el5.028stab059.3 #1 SMP Wed Oct 15 13:33:44 MSD 2008 i686
vi@vi-server:~$
Теперь это в порядке.
Как более просто сделать это автоматическим?
Похож на AutoSSH, правильная вещь для этого.
Autossh является программой для запуска копии SSH, и контролировать он, перезапуская его по мере необходимости должен он умирать или останавливать проходящее движение. Исходная идея и механизм были вдохновлены RSTunnel (Надежный Туннель SSH).
С версией 1.2 измененный метод: autossh начал использовать SSH, чтобы создать цикл из передач SSH (один от локальной машины до удаленного, и один от удаленного до локального) и затем отправить данные тестирования, которые это ожидает возвращать. (Идея была благодаря Terrence Martin.)
С версией 1.3 новый метод был добавлен (благодаря Ron Yorston): порт может быть указан для удаленного сервиса эха, который отреагирует на данные тестирования. Это избегает перегрузки и ухудшения удостовериться, что все номера портов на удаленной машине не сталкиваются. Метод цикла передач остается доступным для ситуаций, где использование сервиса эха не может быть возможным.
Функции
- autossh является программой для запуска копии ssh, и контролировать это, перезапуская его по мере необходимости должно он умирать или останавливать проходящее движение. Идея от rstunnel (Надежный Туннель SSH), но реализованный в C.
- Представление автора состоит в том, что это не столь трудно как rstunnel для взятий за работу.
- Контроль соединения с помощью цикла перенаправления портов или удаленного обслуживания эха.
- Отступает на уровне попыток подключения при испытании быстрых отказов, таких как соединение, которому отказывают.
- Скомпилированный и протестированный на OpenBSD, Linux, Солярисе, Mac OS X, Cygwin и AIX; должен работать над другим BSDs.
- Бесплатное программное обеспечение.