Разница между «локальной переадресацией портов» и «динамической переадресацией портов»?

13

Я пытаюсь понять разницу между «локальной переадресацией портов» и «динамической переадресацией портов».

Всегда ли в команде 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.

С помощью -LSSH не предпринимается попытка понять трафик. Он просто отправляет все, что получает на локальном порту, на целевой порт - вы определяете целевой порт во время установления соединения. С помощью -DSSH выступает в качестве прокси-сервера и, следовательно, может обрабатывать соединения из нескольких портов (например, браузер, настроенный для его использования в качестве прокси-сервера SOCKS, может затем обращаться к HTTP, HTTPS, FTP и т. Д. Через одно и то же соединение). И, как и с другими прокси-серверами, он будет использовать трафик для определения пункта назначения.

Мур
источник
1
Спасибо, Муру! Интересно, почему динамическая пересылка называется прокси, а локальная - нет? По определению сервер ssh, клиент ssh или оба в локальной переадресации прокси (сервер)? unix.stackexchange.com/a/234184/674
Тим
1
@ Тим прокси-сервер понимает, какой протокол он проксирует. С перенаправлением портов, SSH не делает никаких попыток понять , что протокол идет свой путь, но -Dон имеет к, для того , чтобы понять , куда отправлять данные.
Муру
Благодарю. Я искал в некоторых учебниках компьютерных сетей (например, в Таненбауме) определение прокси (сервера) так же ясно, как у вас, но не был удовлетворен. У вас есть несколько книг, которые можно порекомендовать для изучения концепций?
Тим
В динамической переадресации портов, какой прокси-сервер, клиент SSH, сервер SSH или оба?
Тим
@Tim Tanenbaum's была единственной книгой, из которой я учился. Остальное приходит от использования вещей.
Муру
0

Еще один способ изучить эту концепцию - взглянуть на то, как клиент подключается к кластеру Amazon EMC. EMR имеет множество локальных приложений, которые он предоставляет, и к ним обычно обращаются через туннели SSH.

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

Здесь клиент говорит, например, что 8157 на локальном хосте перенаправляется на abcd: 8088. Клиент должен сделать запрос на локальный хост : http: // localhost: 8157 Другие приложения могут прослушивать порты, такие как 8089,8090, и Клиент должен сделать SSH-соединения для каждого из них.

B) Переадресация динамического порта. Здесь используется одна команда 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.

М га
источник