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


34

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

Я шукаю інші способи, як це зробити. Я знаю, що можу переслати порт за допомогою opensh , але мені потрібно переслати 20+ різних портів, tcp та udp, щоб це не варіант.

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


так добре питання +1. Я не знаю рішення, з нетерпінням чекаю, чи є тут щось технічне.
Шурик

А потім, як щодо програми, яка дозволяє пересилати порти на різні напрямки на основі вихідного IP?
dpk

Повністю уникайте проблеми, ніколи не використовуючи VPSes на основі 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-малиновому пі
чочки

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

13

Існує крихітна програма з легкими ресурсами, яка називається redirдосить налаштована.

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


Раніше я використовував цей інструмент, і він працює дуже добре ...
Алекс

Я другий цей інструмент. Здається, це не інструмент для пересилання пакетів, а тунель tcp. Це змінить IP-адресу джерела, яку бачить ціль. Таким чином, це чудово працює, коли вам потрібно перенаправити один порт на інший комп'ютер, який має іншу настройку маршрутизації.
scegg

10

Про що rinetd?
Це демон, який перенаправляє TCP-з'єднання. Перегляньте сторінку чоловіка, щоб побачити, чи відповідає вона вашим потребам: http://www.boutell.com/rinetd/


Виглядає цікаво, але він обмежений лише TCP, як ви сказали.
troex

UDP підтримується зараз: github.com/samhocevar/rinetd
kev

6

xinetdпідтримує атрибут переспрямування, який буде робити те, що ви хочете. Як зазначають інші, існує ряд програм, які обробляють переадресацію.

Використання xinetdабо інша програма, яка використовує tcpwrappersбібліотеку, дозволить вам застосувати обмеження доступу, якщо і коли це стане необхідним.


4

xinet / inetd. Наприклад:

переадресація

Дозволяє послуги tcp переадресовувати на інший хост. Коли xinetd отримує з'єднання tcp на цьому порту, він породжує процес, який встановлює з'єднання з вказаним хостом і номером порту, і передає всі дані між двома хостами.

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


Виглядає цікаво, але він обмежений лише TCP, як ви сказали
Дуд

4

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


Я прийму свою відповідь, оскільки, здається, це єдине програмне забезпечення, яке повністю підтримує як протоколи TCP, так і UDP.
troex

3

SSH Чи здійснює переадресацію портів, якщо ви можете тунелювати в SSL-з'єднання.


-3

Гаразд, це проста відповідь, яка повинна працювати, це не ракетна наука, але більшість людей ускладнюють відповідь і плутають все нове з користувачами Linux.

ufw дозволяють 2xxx

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


Він просто відкриває порт на інтерфейсах, звернених поза сервером. Він не перенаправляє або пересилає порт з одного ip на інший. ВІДКРИТИ ПОРТ.
AmirHossein
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.