Здравейте, имам следната схема от машини :
<пс-та в офис> --> <рутер> --> <бтк адсл> ---> <ИНТЕРНЕТ> --> <пс с публичен ип адрес (windows)>
Та значи за да мога да се свързвам с рутера зад адсл-а , съм пуснал в crontab
1 * * * * ssh -T -R 2922:localhost:22 -N -g -f -i /home/root/.ssh/username_private_key -l "user name" publiciphost.com
Та значи това кара Freesco рутера който шерва нета от бтк, да направи reverse тунел като се закачи към машината publiciphost.com (моята windows машина, с openssh/cygwin) като използа priv/pub key и на ремоте машината мапва порт 2922 да отговаря на localhost:22 ... с две думи на машината с windows порт 2922 е отворен и чрез ssh publiciphost.com -p 2922 се закачам за рутера който е за бтк адсл.
Та на въпроса - понеже тъпото ssh @ рутер, всеки път като се изпълни cron-а прави опит за връзка, ако тунела е активен - то му казва нещо че този порт се ползва вече, и процеса остава да виси ... и така както е нагласено - в първата минута на всеки час да го вдига тунела, става кофти че мноого процеси висят. Сложил съм в крон killall ssh което в 12:00 избива всички процеси, но е тъпо решение ... другия проблем е че на windows машината също висят толкова на брой процеси, sshd.exe :-D , и помпат по ~8mb всеки. Най-тъпото е че открих че процесите не дропват сами , дори да отпадне физическата връзка към интернет на рутера.
Някакви идеи как мога да сетъпна нещата така че да се проверява дали тунела е активен (ама не с ps -aux | grep ssh , щото процеса върви дори и да е прекъсвала връзката и тунела да трябва да се стартира ... ) ?
P.s. цялата дандания е необходима, понеже бтк адсл дава на рутера 192.168.1.1 и рутера си няма публично ип към което да се вържа
'>