|
Тема
|
ssh port forwarding въпрос
|
|
Автор |
| (>[2] /dev/null) |
Публикувано | 19.01.07 00:53 |
|
Имам малко странен въпрос за ssh & port forwarding. :)
Значи, искам да направя port forwarding от отдалечената машина към локалната, но не знам предварително кои портове са свободни на отдалечената машина. Т.е. искам като се вържа на alabala.com, всички връзки към даден локален порт да бъдат прехвърляни на локалния порт 5640. Нещо като:
ssh -R 6666:127.0.0.1:5640 alabala.com
но вместо 6666 да е произволен свободен порт, който мога да разбера за да знам какво да използвам.
Струва ми се, че не може да стане със ssh, но реших все пак да попитам за second opinion :)
| |
Тема
|
Re: ssh port forwarding въпрос
[re: |]
|
|
Автор |
%esp (__me) |
Публикувано | 19.01.07 10:37 |
|
В отговор на:
който мога да разбера за да знам какво да използвам.
Това нещо не го разбирам. Всъщност целия въпрос не разбирам. Кой порт знаеш? 6666 или 5640? Някой фиксиран ли е? Или търсиш първия свободен, нещо не съм в час.
Сега едно предложение като от програмист (админите вероятно ще ме обесят за такова нещо): пусни си командата дето си я написъл в цикъл (в скрипт например, или си напиши едно малко демонче).
| |
Тема
|
ами
[re: |]
|
|
Автор | .. (Нерегистриран) |
Публикувано | 19.01.07 11:38 |
|
ако портът е зает и не се логваш с руут (най-вероятно) ще ти хвърли това - Warning: remote port forwarding failed for listen port 6666
можеш да шибнеш нещата в цикъл и да обходиш няколко произволни порта, но наистина е леко просташко. :) от друг страна вероатността да нацелиш зает порт над 32к е малка...
| |
Тема
|
вероЯтността
[re: ..]
|
|
Автор | .. (Нерегистриран) |
Публикувано | 19.01.07 11:39 |
|
| |
Тема
|
Re: ssh port forwarding въпрос
[re: %esp]
|
|
Автор |
C.Capъeв () |
Публикувано | 19.01.07 12:26 |
|
разбира се, че ще те обесят, то си е за бесене..
по-добре като програмист, му предложи да си напише нещо елементарно на ц, да опитва с bind() поредни след 1024 портове, да чака 0 като return от bind()-а, и т.н., тои знае какво още
| |
Тема
|
Re: ssh port forwarding въпрос
[re: %esp]
|
|
Автор |
| (>[2] /dev/null) |
Публикувано | 19.01.07 15:56 |
|
OK, ще се опитам да обясня по-подробно...
Имам една програма, да кажем, че се казва cprog. Тя получава като аргументи име на отдалечен сървър (serv) и програма, която да стартира (cmd). Трябва да направи еквивалента на интерактивна сесия подобно на ssh -t serv cmd, но с едно допълнение. cprog стартира service, който е индивидуален за всяко стартирано копие. Service-а чака на произволен свободен локален порт (програмистите знаят как се прави, не включва играене на лотария). На отдалечения компютър се стартира програма, която прави разни неща с този service, и накрая стартира зададената програма.
Това, което искам е, трафика за тоя service да минава през ssh -- заради криптирането и за да няма нужда отдалечения компютър да може да "вижда" близкия. Проблемът е, че не знам кои портове на отдалечения компютър са свободни, за да направя port forwarding. При интерактивна сесия с ssh потребителя може да добавя нови forwardings като влезе в команден режим (с ~C), обаче не ми е ясно как мога да направя това от програма.
Пробването на различни портове докато намеря накой свободен не е опция. Не играя на лотария :) По-скоро ще си напиша собствено ssh :)
| |
|
|
|
|