Выполнение ssh туннелирует в цикле; плохая идея? Порт, уже используемый?

Я создал туннель ssh с сервера, который физически расположен, где я работаю (он выполняет CentOS) для размещения (Ubuntu), таким образом, я могу войти в систему своего туннеля работы из дома, с помощью команды как это на рабочем компьютере:

ssh -R 49666:localhost:22 homename@homeIP -N

Я сделал ключи и т.д. Я ssh'd от работы для размещения, и затем в то время как удаленно в моем домашнем компьютере, ssh'd назад для работы для тестирования его. Это казалось прекрасным, это работало. Я мог scp файлы оба пути и т.д.

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

while true
 ssh -R 49666:localhost:22 homename@homeIP -N
 sleep 15

У него в основном есть это выполнение в бесконечности для перезапущения поврежденного туннеля автоматически, когда это повреждается.

Я попробовал это также, сделал тестирование (sshed от работы для размещения, в то время как физически на работе удаленно с помощью моего домашнего компьютера), и это казалось прекрасным снова. Но снова, когда я пошел домой, туннель не работал. Я просмотрел auth.log и нашел эти три строки в той же метке времени, которая будет о том, когда я был промежуточным домой:

Accepted publickey from work IP (I erased the rest for my privacy)
error: bind: Address already in use
error: channel_setup_fwd_listener_tcpip: cannot listen to port: 49666

Кажется, что это пыталось обязать мой туннель портировать 49666, в то время как что-то еще использовало его. Хорошо, я добираюсь, почему это перестало бы работать. Таким образом, я пытался найти то, что использует порт 49666, таким образом, я мог уничтожить его. Но ничто, кажется, не. Я попробовал netstat, lsof, и т.д. Ничто не использует порт 49666. Я не думаю, что что-либо КОГДА-ЛИБО использует порт 49666 кроме туннеля. Могло случиться так, что это сделало туннель, когда туннель уже существовал? Или если бы туннель уже существовал, то туннелирующий сценарий цикличного выполнения ничего просто не сделал бы?

Так как ничто не использует порт 49666, я ожидал бы, что туннель будет восстановлен автоматически, когда туннельный сценарий на моем рабочем компьютере пройдет цикл снова, но не кажется, что это.

Существует ли способ разрешить это, физически не возвращаясь к серверу на работе? Или по крайней мере, для разрешения его только с одной тонкой настройкой, таким образом, я не должен регулярно возвращаться?

Сервер никогда не выключается, таким образом, в теории, сценарий цикличного выполнения должен все еще идти. Но это завершило бы себя после того, как этому не удается сделать туннель, возможно?

2
задан 22 December 2016 в 05:51

0 ответов

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

Похожие вопросы: