4

Мне было интересно, возможно ли получить переадресацию портов, не будучи root или ssh.

В настоящее время я делаю

ssh -L 20080:othermachine:80 localhost

Использование ssh может дать вам определенные преимущества, такие как создание зашифрованных туннелей и т.д. В приведенном выше примере я этого не делаю, поэтому использование ssh кажется ненужным. Есть ли более простой способ сделать это?

Я полагаю, не так сложно создать программу, которая считывает все данные из одного сокета и отправляет их в другой, и наоборот. Должен быть какой-то инструмент, который делает эту работу лучше, чем я когда-либо мог написать.

5 ответов5

9

Я также предпочел бы ssh, потому что шифрование, но « socat » должен работать хорошо для вас.

3

Вы спрашиваете: Is there an easier way to do this? Простой ответ будет «нет». SSH делает то, что вам нужно, и это хорошо используемая, хорошо известная, очень эффективная программа с (я бы сказал) очень небольшим количеством ошибок, она доступна на любой платформе, которую вы можете себе представить, и безопасна для загрузки. Вы не утверждаете, что производительность является проблемой, поэтому я не вижу причины, почему бы не использовать SSH лично.

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

1

Вкратце, кажется, что ncat, поставляемый с новым nmap 5, может делать то же самое, что и socat: http://nmap.org/ncat/

1

Если то, что вы делаете, работает, и вы не видите никаких проблем с производительностью, я бы ничего не изменил. Если вы не передаете большие объемы данных, это не должно сильно повлиять. И если да, ssh может сжать данные, так что вам все равно будет лучше.

Единственная проблема может быть с задержкой. Похоже, вы туннелируете http-трафик, поэтому он должен быть незначительным.

0

Какой бы инструмент вы ни использовали: если вы не используете Windows, вам всегдатолько) нужно будет работать с привилегиями суперпользователя, когда вы используете привилегированные порты ("хорошо известные порты"). Итак: при использовании портов до 1023 включительно.

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