Перенаправление порта - PullRequest
       25

Перенаправление порта

8 голосов
/ 04 декабря 2011

У меня есть простое требование переадресации / туннелирования портов на уровне программного обеспечения.

  • У меня есть исходный сервер и порт, использующий сокеты.Это Java-программа, которая работает как в Windows, так и в Linux, и это не имеет значения.
  • У меня есть устройства, которые продолжают отправлять данные на этот порт.Возможно двунаправленная связь
  • Я хочу перенаправить эти данные на другой удаленный сервер и порт.Таким образом, клиентам не нужно будет беспокоиться об изменении IP-адреса при каждом перемещении сервера приложений.

Существуют ли какие-либо инструменты / программы-сервисы / сервисы, которые я могу использовать для настройки и выполнения этого?

Я пробовал SSH, но, насколько я понимаю, для этого нужен сервер с включенным протоколом SSH.В моем случае это не применимо.Я также пытался использовать JSch, но это опять-таки реализация SSH в формате java.

Может кто-нибудь кинуть несколько указателей?Можно ли использовать iptables NAT в Linux?

Ответы [ 3 ]

4 голосов
/ 04 декабря 2011

Вы можете попробовать netcat или socat (это мощнее, чем netcat)

Пример для socat для переадресации порта 80 с помощью tcp4:

socat tcp4-listen:80,fork tcp4:{another server}:{another port}

и ссылки на http://en.wikipedia.org/wiki/Netcat#Port_Forwarding_or_Port_Mapping для netcat

Оба не связаны с Java.

2 голосов
/ 04 декабря 2011

Существует утилита переадресации портов TCP / IP с именем portforward , доступная в code.google.com. Он полностью написан на Java.

0 голосов
/ 04 декабря 2011

Если вы уже используете xinetd в своей системе, он предоставляет простой механизм переадресации портов , который может быть полезен, если вы еще не используете IPTables.

Если вы используете IPTables, у Server Fault есть отличный, короткий вопрос с очень похожей целью . Хотя я нахожу это немного кратким более подробная документация доступна .

...