Это возможно?

  1. локальная система с сервером ssh
  2. удаленный клиент, на котором запущено соединение клиента ssh с (1)
  3. целевой пункт назначения в сети клиента (2) для локального (1) трафика

Когда удаленный ssh-клиент подключается к локальному ssh-серверу, я хочу перенаправить трафик из моей локальной системы в другое место в сети клиентской системы.

Например, если я делаю переадресацию для порта 80, то после подключения клиента через ssh локальный трафик, направленный на порт 80, будет перенаправлен на (3) выше.

Если возможно, и предложили ssh-клиенты, которые могли бы легче это поддерживать, или это только тип командной строки установки?

Спасибо!

1 ответ1

0

Первая часть этого - создание туннеля - может быть выполнена программным обеспечением клиента ssh.

В стандартном ssh-клиенте командной строки (я использую Mac, но считаю, что это поведение соответствует версиям unix/linux), использование указывает ' -R [bind_address:]port:host:hostport ' для порта, который будет переадресован из сервер клиенту (тогда как -L пересылает с клиента на сервер).

Например, если вы хотите перенаправить порт 80 на удаленном ssh-сервере на локальный веб-сервер, к которому клиентский компьютер получит доступ, перейдя по http://localserver:80/ , вы должны подключиться с дополнительным аргументом командной строки -R 80:localserver:80 .

В зависимости от операционной системы клиентского компьютера, для настройки этого параметра могут использоваться различные другие параметры. Если вы работаете в любой ОС на базе Unix, я бы порекомендовал описанную выше, или, если вы работаете в Windows, PuTTY может настроить этот тип туннеля (Настройки / SSH / Туннели - выберите «Удаленный» вместо «Локальный»). «).

После настройки туннеля это позволит любому пользователю в той же сети, что и сервер ssh, подключиться к веб-серверу в сети клиента. Однако они не смогут подключиться к нему через его реальный IP-адрес - им придется подключиться к http://sshserver:80/ и трафик будет перенаправлен на удаленный сервер, и ответ будет возвращен.

Если вы хотите иметь возможность доступа к одному и тому же серверу через тот же URL-адрес, вам необходимо добавить соответствующую запись DNS в сети сервера ssh, указывающую на IP-адрес сервера ssh. Он не будет доступен, когда клиент ssh отключен.

Также обратите внимание, что сервер ssh имеет только один порт 80, так что вы можете сделать это только для одного удаленного сервера за раз. Если вы хотите обойти это ограничение, вам придется назначить несколько IP-адресов серверу ssh и использовать необязательный аргумент 'bind address' в командной строке ssh, или вы можете распределить серверы по разным портам (обычно 8080, 8081, ...) выбрав разные удаленные порты в команде ssh - сами веб-серверы могут все еще использовать порт 80.

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