Перенаправление портов в SSH: различия между версиями

Материал из Linux Wiki
Перейти к навигацииПерейти к поиску
(Новая: ===ssh -L [адрес:]порт:хост:порт_хоста someuser@somehost=== После такого подключения обращение на '''порт''' на (дефолт...)
 
 
(не показаны 2 промежуточные версии этого же участника)
Строка 2: Строка 2:
После такого подключения обращение на '''порт''' на (дефолтно) локальной машине будет таким же, как будто вы обращаетесь напрямую на '''хост:порт_хоста''' находясь на удаленной машине.
После такого подключения обращение на '''порт''' на (дефолтно) локальной машине будет таким же, как будто вы обращаетесь напрямую на '''хост:порт_хоста''' находясь на удаленной машине.


Пример 1:
Пример 1:<br>
'''ssh -L 12345:192.168.123.213:80 myuser@proxyhost'''<br>
позволит обращаться на локальный порт '''12345''' так же, как если бы Вы находились на машине '''myproxyhost''' и обращались на '''80'''-й порт хоста '''192.168.123.213'''.


'''ssh -L 12345:192.168.123.213:80 myuser@proxyhost'''
Пример 2:<br>
 
'''ssh -L 3128:localhost:3128 user@myhostwithproxy'''<br>
позволит обращаться на локальный порт '''12345''' так же, как если бы Вы находились на машине '''myproxyhost''' и обращались на '''80'''-й порт хоста '''192.168.123.213'''.
позволит обращаться на локальный порт '''3128''' так же, как если бы Вы находились на машине '''myhostwithproxy''' и обращались на порт '''3128''' там.
 
Пример 2:
 
'''ssh -L 3128:localhost:3128 user@myhostwithproxy'''
 
позволит обращаться на локальный порт '''3128''' так же, как если бы Вы находились на машине '''myhostwithproxy''' и обращались на порт '''3128''' там.


===ssh -R [адрес:]порт:хост:порт_хоста someuser@somehost===
===ssh -R [адрес:]порт:хост:порт_хоста someuser@somehost===
Строка 18: Строка 14:
Подобно ключу '''-L''', но в данном случае обращение на '''порт''' на удаленной машине будет таким же, как будто Вы обращаетесь напрямую на указанный '''хост:порт_хоста''', находясь локально.
Подобно ключу '''-L''', но в данном случае обращение на '''порт''' на удаленной машине будет таким же, как будто Вы обращаетесь напрямую на указанный '''хост:порт_хоста''', находясь локально.


Пример 1:
Пример 1:<br>
'''ssh -R 3128:localhost:3128 user@myhostwithproxy'''<br>
После логина на удаленную машину на ней можно будет обращаться к порту '''3128''' так, как будто на ней работает http-proxy, расположенной на локальной машине.


'''ssh -R 3128:localhost:3128 user@myhostwithproxy'''
===ssh -D [хост:]порт someuser@somehost===


После логина на удаленную машину на ней можно будет обращаться к порту '''3128''' так, как будто на ней работает http-proxy, расположенной на локальной машине.
После такого подключения на указанном локальном '''порт'''у будет доступен SOCKS-прокси сервер, забирающий трафик с '''somehost'''


===ssh -D [хост:]порт someuser@somehost===
==Примеры перенаправлений портов==


После такого подключения на указанном локальном '''порт'''у будет доступен SOCKS-прокси сервер, забирающий трафик с '''somehost'''
Пример 1, множественное перенаправление портов:<br>
'''ssh -t -L 10000:localhost:20000 user1@host1 "ssh -t -L 20000:localhost:30000 user2@host2 \"ssh -D 30000 user3@host3\""'''<br>
В итоге эта команда позволит обращаться к SOCKS-серверу, работающему локально на порту '''10000''' и забирающему трафик с машины '''host3'''.<br>При этом делается несколько последовательных соединений, описанных в 1-м случае<br>(обращение на '''10000''' порт локально происходит так же, как и на '''20000'''-й порт на '''host1''',<br>в свою очередь на '''host1''' выполняется подключение на '''host2''' и обращение на '''20000''' порт на '''host1''' происходит так же, как и на '''30000''' порт на '''host2'''),<br>и одна проброска, описанная в последнем (на порт '''30000''' на '''host2''' вешается ''SOCKS-сервер'', забирающий трафик с '''host3''')


[[Category:SSH]]
[[Category:SSH]]

Текущая версия на 14:55, 9 декабря 2008

ssh -L [адрес:]порт:хост:порт_хоста someuser@somehost

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

Пример 1:
ssh -L 12345:192.168.123.213:80 myuser@proxyhost
позволит обращаться на локальный порт 12345 так же, как если бы Вы находились на машине myproxyhost и обращались на 80-й порт хоста 192.168.123.213.
Пример 2:
ssh -L 3128:localhost:3128 user@myhostwithproxy
позволит обращаться на локальный порт 3128 так же, как если бы Вы находились на машине myhostwithproxy и обращались на порт 3128 там.

ssh -R [адрес:]порт:хост:порт_хоста someuser@somehost

Подобно ключу -L, но в данном случае обращение на порт на удаленной машине будет таким же, как будто Вы обращаетесь напрямую на указанный хост:порт_хоста, находясь локально.

Пример 1:
ssh -R 3128:localhost:3128 user@myhostwithproxy
После логина на удаленную машину на ней можно будет обращаться к порту 3128 так, как будто на ней работает http-proxy, расположенной на локальной машине.

ssh -D [хост:]порт someuser@somehost

После такого подключения на указанном локальном порту будет доступен SOCKS-прокси сервер, забирающий трафик с somehost

Примеры перенаправлений портов

Пример 1, множественное перенаправление портов:
ssh -t -L 10000:localhost:20000 user1@host1 "ssh -t -L 20000:localhost:30000 user2@host2 \"ssh -D 30000 user3@host3\""
В итоге эта команда позволит обращаться к SOCKS-серверу, работающему локально на порту 10000 и забирающему трафик с машины host3.
При этом делается несколько последовательных соединений, описанных в 1-м случае
(обращение на 10000 порт локально происходит так же, как и на 20000-й порт на host1,
в свою очередь на host1 выполняется подключение на host2 и обращение на 20000 порт на host1 происходит так же, как и на 30000 порт на host2),
и одна проброска, описанная в последнем (на порт 30000 на host2 вешается SOCKS-сервер, забирающий трафик с host3)