Форум OlegON > Компьютеры и Программное обеспечение > Сеть

Plink ssh tunnel windows service reconnect? : Сеть

23.04.2024 11:50


20.05.2017 14:50
baggio
 
1. Есть plink
2. Установленна виндовая служба anysrv в ней прописано
plink.exe -ssh -N -R 40512:localhost:5900 -P 22 -pw 111111 -l vnc -batch 185.42.8.8
3. служба стартует и пробрасывает порт от внс на сервер...
все здорово пока не рвется соединение... решается только перезапуском службы...
нужно как то мониторить тоннель и если оборвался - то перезапускать...

а)можно мониторить порт на сервере... но тут беда в том что порты 30000-50000 закрыты специально что бы никто не мог подбирать пароли к ВНЦ... т.е. с хоста проверить этот порт низя...

б) можно мониторить порт 22 по которому plink поднимает тоннель - но тоннелей несколько.. не только для ВНЦ...

в) пожно мониторить в задачах plink и если его нет перезапускать все тоннели - но блин ... как то не кошерно...

Знает кто как заставить plink самостоятельно переподключатся при обрыве? типа keep alive?

Знает кто как заставить srvany падать если запущенный ею plink упал? если служба упала то можно её поднимать автоматом...

Есть у кого идеи?
20.05.2017 15:23
OlegON
 
Как-то ты путано описал... Проблема и некошерность в том, что куча plink болтается и из-за одного влом перезапускать все?
Зачем тебе anysrv вообще? Пускай шедалером раз в минуту. Он с опцией "не запускать копию". Если работает - ждет, если отвалится, через минуту запустит заново... Если хочешь - раз в сутки принудительно переподключай обрывом "выполняющегося дольше чем".
23.05.2017 09:25
OlegON
 
Чем кончилось-то?
23.05.2017 10:47
baggio
 
кончилось тем что я был паражен....

1. у plink несмотря на всю его аху... офигенность нет реконнекта... т.е. я не могу сказать ему вот тебе логин вот тебе пароль.. вот тебе ключ если нужно - держи соединение постоянно и переподключайся если оборвешься... если честно я даже не мог поверить первое время что такое возможно с продуктом который вообщемто и создавался (выпили кусок из путти), как штука для тоннелей... и такого нет.. .я был в печальке...

2. потом я понял что когда тоннель падает то процесс plink.exe пропадает. Т.е. служба якобы работает а процесса plink нет... я наваял батник который бы проверял каждые 5 минут наличие 3-х plink... и если хоть одного нет - рестарт всех 3 тоннелей... т.к. хер его знает какой именно тоннель упал... (хотя можно plink - переименовать под каждый свой тоннель... хм... подумаю...тока щя пришло в голову...)

и это даже как то сейчас работает... тесчу...
3. но сегодня по утру я был "приятно" удивлен... plink висит в процессах... zabbix мне говорит всё... баста телепузики.. нет связи с агентом...
и вот тут я уже начинаю злится... потому как я например не могу проверить по портам поднятый тоннель... или не умею...
суть...
тоннель плинк поднимает со случайного порта до 22 на сервере...
далее сервер делает лупбэк с порта скажем 26001 до 127.0.0.1 на порт скажем 10050...
проверить порт 26001 я не могу... он закрыт на сервере чтобы всякие не перебирали...
порт 10050 я проверить могу но что толку я проверю же только локальный порт и что он открыт...
я пока немного нервничаю и туплю...

Есть альтернатива нормальная Plink`у на винде?
23.05.2017 13:49
OlegON
 
Есть нормальная альтернатива винде, блин...
Когда телепузики, что с соединением-то произошло? Оно не может смотреть в никуда, оно либо установлено, либо оторвалось (отваливается) по таймауту и plink сдох. Про переименовывание я тебе говорил выше - запускай заданиями... Заодно все в куче и будешь видеть, что запущено. Возможно, что периодически тем же заббиксом надо KeepAlive делать в соединение.
23.05.2017 14:13
baggio
 
Цитата:
OlegON Есть нормальная альтернатива винде, блин...
Когда телепузики, что с соединением-то произошло? Оно не может смотреть в никуда, оно либо установлено, либо оторвалось (отваливается) по таймауту и plink сдох. Про переименовывание я тебе говорил выше - запускай заданиями... Заодно все в куче и будешь видеть, что запущено. Возможно, что периодически тем же заббиксом надо KeepAlive делать в соединение.
1. перестань искать альтернативы... винде... как бы тебе не хотелось в перспективе лет 5-7 в России без вариантов... короче это вот винда и всё... точка...

2. Чо происходит с соединением - хз... plink логов не ведет... а он запущен как служба, т.е. интерактивного взаимодействия с ним нет...
но факт... plink висит в процессах... порт не проброшен...
рестарт службы с plink и все ок... т.е. у plink что то происходит что он думает что связь есть... а её нет... я в недоумении... пока...

3. я не хочу заданиями...
0. ну во первых имхо это не правильно.
1. возникают не тривиальные порой ограничения на запуск батников заданиями от system... последнее закручивание гаек в 10-ке привело к запрету запуска батника другим батником из задания...
2. Батник это не секъюрно... можно туда что угодно написать...
3. Ты мне предлагаешь батник в цикле, вместо того что бы понять что на самом деле не так и разобраться почему падает проброс от plink... или найти ему достойную замену... не могу сейчас судить о том кто из нас больший "костылист"... :))
23.05.2017 15:13
OlegON
 
я не предлагаю батник, я предлагаю сам plink запускать в повторяющемся задании. и при повторном подвисании просто посмотри, есть ли что-то на той стороне от соединения, может, оно и так отвалится... сниффером на этой стороне тоже посмотри, надо разобраться, чем просто рубить.
23.05.2017 16:16
baggio
 
запускать батником не вариант и вот почему:

1. запускать его просто в консоли - бред... он может час\два\ сутки\двое отрабатывать нормально... висит и висит себе.. все работает....
через какое то время от 15 минут до нескольких суток что то происходит... вывода у plink - нет... ну вот нет... мало того понятно что это проблемы с сетью... где то на время рвется... и это не исправить... предполагается что каналы будут в том числе и плохими...
по факту... plink плохо держит соединение по ssh. это соединение нужно мониторить и при косяках перезапускать...
но проблема что сам plink не дает средств диагностики тоннеля... поэтому нужны костыли... и делать их с батнике не вижу смысла...

щя смотрю на MyEnTunnel... он поднимает точно такойже тоннель на plink... но крайне забавно его мониторит... помимо портов которые тебе нужно он еще пару своих пробрасывает... делает кольцо... порт от себя до сервера и этот же порт отсервера до себя на второй порт... и что бы вы думали? гоняет пинги через него периодически типа нет пингов столько то упал канал...
и после этого линусоиды мне про костыли рассказывают ))) ладно... я не про то...
сейчас вот прикручиваю MyEnTunnel... голый плинк к сожалению не справляется... или как то исходники править...
23.05.2017 16:24
OlegON
 
Это называется "несистемный подход". Зачем ты мечешься, причину бы выяснил или общую картину происходящего, нет, надо перебирать разный мусор... Кстати, а зачем тебе этот тоннель, еще и напостоянку?
23.05.2017 16:41
baggio
 
Цитата:
OlegON Это называется "несистемный подход". Зачем ты мечешься, причину бы выяснил или общую картину происходящего, нет, надо перебирать разный мусор... Кстати, а зачем тебе этот тоннель, еще и напостоянку?

трудно сказать системный или нет... не готов спорить...
просто причина лично мне ясна - это обрывы канала.
следствие тоже - в 90% плинк падает и его нужно поднимать с колен руками - батником по расписанию проверять...
в 10% случаев он не падает а "залипает" причин он не говорит ни в консоль ни "куда бы то ни было" еще... т.к. "ку дабы то ни было" не предусмотрено

причины мне ясны. последствия тоже.
мусор перебирать не хочу... хочу сделать службу - сказать ей вот эти порты - пробрось. и забыть - пусть она сама как хочет изворачивается но порты мне обеспечит... стабильно... надежно... НАВЕКА!!!))
и если есть готовое решение которое с этим справится а не заставит меня писать километры тупого кода в батниках... а писатель батников я еще тот... т.е. никакущий... я буду примного благодарен....
Часовой пояс GMT +3, время: 11:50.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.