Різниця між "переадресацією локального порту" та "динамічною переадресацією портів"?


14

Я намагаюся зрозуміти різницю між "локальною переадресацією порту" та "динамічною переадресацією порту".

Чи завжди в команді ssh для "переадресації локального порту" потрібно вказувати хост призначення?

Чи означає "динамічний" в "динамічне переадресація портів", що в команді ssh для "динамічного переадресації порту" немає необхідності вказувати хост призначення? якщо так, то коли вказується пункт призначення?


Відповіді:


15

Так, вам потрібно вказати IP-адресу та порт призначення при використанні локальної переадресації. Від man ssh:

 -L [bind_address:]port:host:hostport
         Specifies that the given port on the local (client) host is to be
         forwarded to the given host and port on the remote side.

Зрозуміло, що лише прив'язувати адресу необов'язково.

Ні, ви не можете вказати хост або порт призначення при використанні динамічного переадресації. У динамічному пересиланні SSH виступає як проксі-сервер SOCKS. Знову з сторінки сторінки (мій акцент):


 -D [bind_address:]port
         Specifies a local “dynamic” application-level port forwarding.
         This works by allocating a socket to listen to port on the local
         side, optionally bound to the specified bind_address.  Whenever a
         connection is made to this port, the connection is forwarded over
         the secure channel, and the application protocol is then used to
         determine where to connect to from the remote machine.  Currently
         the SOCKS4 and SOCKS5 protocols are supported, and ssh will act
         as a SOCKS server.

З -L, SSH не робить спроб зрозуміти трафік. Він просто надсилає все, що він отримує на локальному порту, до цільового порту - ви визначаєте цільовий порт під час встановлення з'єднання. З -D, SSH діє як проксі-сервер, і тому може обробляти з'єднання з декількох портів (наприклад, браузер, налаштований на його використання як проксі-сервер SOCKS, може потім отримувати доступ до HTTP, HTTPS, FTP і т.д. через одне і те ж з'єднання). Як і в інших проксі-серверах, він використовує трафік для визначення місця призначення.


1
Спасибі, муру! Цікаво, чому динамічне переадресація називається проксі, а локальне переадресація - ні? За визначенням, ssh-сервер, ssh-клієнт або обидва в локальному пересиланні проксі (сервер)? unix.stackexchange.com/a/234184/674
Тім

1
@Tim проксі-сервер розуміє, який саме протокол, який він підтримує. З перенаправленням портів, SSH робить ніяких спроб зрозуміти , що протокол йде свій шлях, але -Dвін має до, для того , щоб зрозуміти , куди відправляти дані.
муру

Спасибі. Я шукав у деяких підручниках комп’ютерних мереж (наприклад, Tanenbaum), щоб визначити проксі (сервер), такий чіткий, як ваш, але не був задоволений. Чи є у вас кілька книг, які можна рекомендувати для вивчення понять?
Тім

У динамічному переадресації портів, що таке проксі-сервер, ssh-клієнт, ssh-сервер чи обидва?
Тім

@ Тіма Таненбаума була єдиною книгою, з якої я навчався. Решта - це використання речей.
муру

0

Ще один спосіб вивчити цю концепцію - це поглянути на те, як клієнт підключається до кластеру зменшення еластичної карти Amazon (EMR). EMR має купу локальних додатків, які вона відкриває, і до них, як правило, звертаються через тунелі SSH.

Для клієнта є два варіанти: A) Команда SSH для передачі локального порту: ssh -i key.pem -L 8157: abcd: 8088 hadoop @ abcd

Наприклад, клієнт каже, що 8157 на localhost пересилається до abcd: 8088 Клієнт повинен зробити запит до localhost: http: // localhost: 8157 Інші програми можуть прослуховувати на портах, таких як 8089,8090, і Клієнт повинен встановити ssh-з'єднання для кожного з них.

В) Динамічний порт вперед Тут використовується одна команда SSH: ssh -i key.pem -D 8157 hadoop @ abcd

Будь-який трафік, який буде здійснюватися через порт 8157, буде спрямований через тунель ssh. Пунктом призначення трафіку буде адреса URL-адреси. Наприклад, ви можете використовувати проксі-клієнт на своєму веб-сервері та перенаправляти деякі http URI, щоб використовувати проксі. Ви можете отримати доступ до всіх своїх програм на 8089,8090 за допомогою однієї команди.

Для ознайомлення дивіться цей документ: https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-web-interfaces.html

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.