Назад | Перейти на главную страницу

Как перенаправить один порт на другой с помощью ssh или любого другого инструмента?

У меня есть устаревшее приложение, прослушивающее порт 5050, привязанный к интерфейсу localhost (например, 127.0.0.1). Это приложение работает на Linux (встроенная система). У меня есть приложение, назовем его «Приложение C», которое работает на ПК и хочет к нему подключиться. Но не может, поскольку устаревшее приложение не принимает подключения извне. У меня нет возможности изменить исходный код устаревшего приложения.
Есть ли способ запустить что-то вроде ssh для прослушивания порта 7070 на встроенном блоке и перенаправления входящего трафика на порт 5050? Я знаю, что ssh это позволяет. Но он ожидает подключения типа ssl извне. Мне интересно, можно ли его запустить только для перенаправления портов без каких-либо туннелей ssl. Что-то вроде SOCKS прокси.

Не стесняйтесь предлагать другие инструменты, если вы знаете тот, который работает.

Вы также можете настроить xinetd сделать это:

Определите новую службу, работающую на порту 7070, и настройте ее с помощью перенаправления (из man xinetd.conf)

redirect Позволяет перенаправить службу tcp на другой хост. Когда xinetd получает TCP-соединение через этот порт, он запускает процесс, который устанавливает соединение с указанным хостом и номером порта и пересылает все данные между двумя хостами.

SSH может делать то, что вы хотите. Ссылаться на Страница руководства по SSHв частности -L и -R параметры (-L создает слушателя на Local machine, перенаправляя что-то на удаленную машину / сеть. -R создает слушателя на Rпереадресация стороны на что-то на локальной машине / в сети).

Порты переадресованы с помощью -L или -R не требуют какого-либо подтверждения протокола - пересылка прозрачна для приложений, подключающихся к этому порту, хотя канал зашифрован с помощью SSH.

Должно быть возможно. Попробуйте с

ssh -R *: 7070:localhost:5050 -N host.example.com

я нашел Rinetd который может сделать это легко. SSH ожидает, что sshd где-нибудь установит зашифрованный туннель, через который подключаются входящие соединения. rinetd довольно хорош, поскольку не зависит от других сущностей. Он просто выполняет переадресацию портов.