43

Я пытаюсь понять разницу между SSH -L к -D. Есть ли что-нибудь еще, кроме этого - только носки?

Спасибо!

2 ответа2

44

ssh -L открывает локальный порт. Все, что вы отправляете на этот порт, проходит через соединение ssh и уходит через сервер. Если вы это сделаете, например, ssh -L 4444:google.com:80 , если вы откроете http://localhost:4444 в своем браузере, вы действительно увидите страницу Google.

ssh -D открывает локальный порт, но у него нет конкретной конечной точки, например, с -L . Вместо этого он притворяется SOCKS-прокси. Если вы откроете, например, ssh -D 7777 , когда вы скажете своему браузеру использовать localhost:7777 качестве прокси-сервера SOCKS, все запросы вашего браузера будут проходить через туннель ssh. Для общедоступного интернета все выглядит так, как будто вы просматривали его с ssh-сервера, а не с компьютера.

3

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

SSH -D [bind_address:]port

Определяет локальную «динамическую» переадресацию портов уровня приложения. Это работает путем выделения сокета для прослушивания порта на локальной стороне, необязательно привязанного к указанному адресу bind_address. Всякий раз, когда устанавливается соединение с этим портом, оно перенаправляется по безопасному каналу, а затем протокол приложения используется для определения того, к чему подключаться с удаленного компьютера. В настоящее время поддерживаются протоколы SOCKS4 и SOCKS5, и ssh будет действовать как сервер SOCKS. Только root может пересылать привилегированные порты. Переадресация динамических портов также может быть указана в файле конфигурации.

Адреса IPv6 можно указывать с альтернативным синтаксисом: порт [bind_address/] или заключая адрес в квадратные скобки.

Только суперпользователь может пересылать привилегированные порты. По умолчанию локальный порт связан в соответствии с настройкой GatewayPorts. Однако явный адрес bind_address может использоваться для привязки соединения к конкретному адресу. Bind_address «localhost» указывает, что прослушивающий порт должен быть привязан только для локального использования, в то время как пустой адрес или «*» указывает, что порт должен быть доступен со всех интерфейсов.

Кроме того, ssh -L Указывает, что данный порт на локальном (клиентском) хосте должен быть перенаправлен на данный хост и порт на удаленной стороне.

SSH -L [bind_address:]port:host:hostport

Указывает, что данный порт на локальном (клиентском) хосте должен быть перенаправлен на данный хост и порт на удаленной стороне. Это работает путем выделения сокета для прослушивания порта на локальной стороне, необязательно привязанного к указанному адресу bind_address. Всякий раз, когда устанавливается соединение с этим портом, оно перенаправляется по безопасному каналу, и устанавливается соединение с портом хоста с удаленного компьютера. Переадресация портов также может быть указана в файле конфигурации. Адреса IPv6 могут быть указаны с альтернативным синтаксисом: [bind_address/] port/host/hostport или заключив адрес в квадратные скобки.

Только суперпользователь может пересылать привилегированные порты. По умолчанию локальный порт связан в соответствии с настройкой GatewayPorts. Однако явный адрес bind_address может использоваться для привязки соединения к конкретному адресу. Bind_address «localhost» указывает, что прослушивающий порт должен быть привязан только для локального использования, в то время как пустой адрес или «*» указывает, что порт должен быть доступен со всех интерфейсов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .