Переадресация портов на Linux без iptables?


34

У меня есть сервер Linux VPS (virtuozzo), и мне нужно настроить переадресацию портов, но мой хостинг-провайдер не разрешает модули ядра iptables-nat, поэтому iptables -t nat- не работает.

Я ищу другие способы, как это сделать. Я знаю, что могу перенаправить порт, используя openssh , но мне нужно переадресовать более 20 разных портов, tcp и udp, так что это не вариант.

Есть ли какое-нибудь программное обеспечение для Linux, которое может выполнять переадресацию портов?


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

А потом, как насчет программы, которая позволяет вам перенаправлять порты в разные пункты назначения на основе исходного IP-адреса?
дпк

Избегайте проблемы полностью, никогда не используя VPS на базе Virtuozzo / OpenVZ.
Майкл Хэмптон

@MichaelHampton: Не очень конструктивно ...
Николас Рауль

Ответы:


47

Используйте инструмент под названием «socat», это отличный инструмент для таких вещей, и он уже упакован во многие дистрибутивы Linux. Читайте об этом здесь: http://www.dest-unreach.org/socat/doc/README

Пример переадресации портов с помощью socat:

socat TCP4-LISTEN:80,fork TCP4:www.yourdomain.org:8080

Это перенаправляет все TCP-соединения через порт 80 на www.yourdomain.org порт 8080 TCP.


Не забудьте, что HTTPS используется по умолчанию для порта 443, а не для порта 80 :)
keiki

Socat - единственный инструмент, который работал для меня на ipv6-only raspberry pi
chotchki

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

13

Есть крошечная, легкая программа ресурсов, redirкоторая называется довольно настраиваемой.

apt-get install redir в дистрибутивах на основе Debian.


Я использовал этот инструмент в прошлом, и он работает очень хорошо ...
Alex

Я второй этот инструмент. Кажется, что это не средство пересылки пакетов, а туннель tcp. Это изменит IP-адрес источника, видимый целью. Так что он прекрасно работает, когда вам нужно перенаправить один порт на другой компьютер с другой настройкой маршрутизации.
scegg

10

Как насчет rinetd?
Это демон, который перенаправляет TCP-соединения. Загляните на страницу справочника, чтобы узнать, соответствует ли она вашим потребностям: http://www.boutell.com/rinetd/


Выглядит интересно, но он ограничен только TCP, как вы сказали.
troex

UDP поддерживается в настоящее время: github.com/samhocevar/rinetd
к

6

xinetdподдерживает атрибут перенаправления, который будет делать то, что вы хотите. Как уже отмечалось, существует ряд программ, которые обрабатывают перенаправления.

Использование xinetdили другая программа, которая использует tcpwrappersбиблиотеку, позволит вам применить ограничения доступа, если и когда это станет необходимым.


4

xinet / Inetd. Например:

редирект

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

http://linux.die.net/man/5/xinetd.conf


Выглядит интересно, но он ограничен только TCP, как вы сказали
Doud

4

Я нашел небольшую утилиту с именем portfwd http://portfwd.sourceforge.net/, которая делает именно то, что мне нужно (пересылка TCP и UDP), на домашней странице написано, что последнее обновление было в 2002 году, но последний выпуск - 2007, и он работает на ядре 2.6. ,


Я приму мой ответ, так как это звучит как единственное программное обеспечение, которое полностью поддерживает протоколы TCP и UDP.
Troex

3

SSH Переадресация портов, если вы можете туннелировать соединение SSL.


-3

Хорошо, вот простой ответ, который должен сработать, это не ракетостроение, но большинство людей усложняют ответ и путают все новое с пользователями Linux.

UFW позволяют 2xxx

2xxx = любой номер вашего порта просто введите эту команду в ваш серверный терминал, и ваш нужный порт будет открыт.


Он просто открывает порт на интерфейсах, выходящих за пределы сервера. Он не перенаправляет и не перенаправляет порт с одного ip на другой. ОНА ОТКРЫВАЕТ ПОРТ.
Амир Хоссейн
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.