Я пытаюсь понять переадресацию портов SSH и не нашел успеха, глядя на разные вопросы и учебные пособия, кажется, что все, что я видел, немного отличается от моей ситуации, и я не могу понять, как это применить к моя.
Я запускаю приложение (A) с компьютера Windows во внутренней сети (22.22.22.xx). Это приложение должно быть размещено в этой сети. У меня также есть клиент / сервер Linux SSH (S) на машине, на которой есть карта сетевого адаптера для сети (22.22.22.xx), а также одна для сети (11.11.11.xx). У меня есть клиент приложения (C), работающий в Windows, который имеет доступ к клиенту SSH, но не имеет доступа к сети (22.22.22.xx), поэтому не может получить доступ к A напрямую. Настройка отображается ниже.
Я пытаюсь настроить переадресацию портов с сервера SSH, чтобы клиент приложения мог подключиться к серверу приложений.
До сих пор мне удалось настроить перенаправление локальных портов с помощью PuTTY на клиенте приложения. Я использовал эту команду (введенную в пользовательском интерфейсе PuTTY):
ssh -L 8888:22.22.22.5:5555 user@11.11.11.4
Отсюда я могу перейти на localhost: 8888 на «C», и меня туннелируют через «S», чтобы добраться до страницы, обслуживаемой на «A». Однако в идеальном мире я бы не хотел открывать и запускать PuTTY на клиенте каждый раз для доступа к странице.
Итак, я пытаюсь найти способ настроить переадресацию удаленного порта для перенаправления порта, скажем 4444, с «S» на «A». Чтобы из «C» я мог просто перейти на 11.11.11.4:4444, и я попал в 22.22.22.5:5555.
До сих пор я пробовал запустить это в командной строке на S:
ssh -R 4444:22.22.22.5:5555 user@localhost -o GatewayPorts=yes
Когда я запустил это, это выглядело так, как будто я ssh-ed прямо обратно в машину, я ввел учетные данные и попытался перейти на 11.11.11.4:4444 с клиента, и меня не перенаправили на сервер. Я также пробовал запустить эту команду (но из PuTTY) на 'A':
ssh -R 4444:localhost:5555 user@22.22.22.4 -o GatewayPorts=yes
Отсюда я получил сообщение «Ошибка переадресации удаленного порта» в журнале событий PuTTY.
Мне кажется, что я очень близок к решению и просто что-то запутался в моих командах, или я совсем не понимаю, что происходит.
Вам не нужна удаленная / обратная переадресация, хотя с локальной версией (ваш первый пример) разница будет небольшой, за исключением того, что она требует настройки на сервере. Опция GatewayPorts=yes
предназначен для ssh-сервера, а не для ssh-клиента.
Попробуйте на сервере S
ssh -g -L 4444:22.22.22.5:5555 user@localhost