У меня есть устаревшее приложение, прослушивающее порт 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
создает слушателя на L
ocal machine, перенаправляя что-то на удаленную машину / сеть. -R
создает слушателя на R
переадресация стороны на что-то на локальной машине / в сети).
Порты переадресованы с помощью -L
или -R
не требуют какого-либо подтверждения протокола - пересылка прозрачна для приложений, подключающихся к этому порту, хотя канал зашифрован с помощью SSH.
Должно быть возможно. Попробуйте с
ssh -R *: 7070:localhost:5050 -N host.example.com
я нашел Rinetd который может сделать это легко. SSH ожидает, что sshd где-нибудь установит зашифрованный туннель, через который подключаются входящие соединения. rinetd довольно хорош, поскольку не зависит от других сущностей. Он просто выполняет переадресацию портов.