Przekazywanie portów w systemie Linux bez iptables?

34

Mam serwer Linux VPS (wirtuoz) i muszę skonfigurować przekierowanie portów, ale mój dostawca hostingu nie zezwala na moduły jądra iptables-nat , więc iptables -t nat- nie działa.

Szukam innych sposobów, jak to zrobić. Wiem, że mogę przekierować port za pomocą openssh , ale muszę przekierować ponad 20 różnych portów, tcp i udp, więc nie jest to opcja.

Czy jest jakieś oprogramowanie dla systemu Linux, które może przekierowywać porty?

troex
źródło
dobre pytanie +1. nie znam rozwiązania, nie mogę się doczekać, aby zobaczyć, czy coś tu jest.
Shurrican
A co z programem, który pozwala przekierowywać porty do różnych miejsc docelowych na podstawie źródłowego adresu IP?
dpk
Unikaj problemu całkowicie, nigdy nie używając VPS opartych na Virtuozzo / OpenVZ.
Michael Hampton
@MichaelHampton: Niezbyt konstruktywny ...
Nicolas Raoul,

Odpowiedzi:

47

Użyj narzędzia o nazwie „socat”, jest to świetne narzędzie do takich rzeczy i jest już zawarte w wielu dystrybucjach Linuksa. Przeczytaj o tym tutaj: http://www.dest-unreach.org/socat/doc/README

Przykład przekierowania portów z socat:

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

To przekierowuje wszystkie połączenia TCP na porcie 80 na www.yourdomain.org port 8080 TCP.

Fbo
źródło
Nie zapominaj, że https jest domyślnie
ustawiony
Socat to jedyne narzędzie, które działało dla mnie tylko na Raspberry Pi tylko na
IPv6
Idealnie, natychmiast rozwiązałem mój problem. Uwaga: musisz upewnić się, że port przychodzący jest otwarty w iptables, jeśli go masz.
jancha
13

Istnieje niewielki, lekki program zasobów o nazwie, redirktóry jest dość konfigurowalny.

apt-get install redir na dystrybucjach opartych na Debianie.

Jonathan Ross
źródło
Używałem tego narzędzia w przeszłości i działa ono bardzo dobrze ...
Alex
Popieram to narzędzie. Wygląda na to, że nie jest to narzędzie do przesyłania pakietów, ale tunel tcp. Zmieni źródłowy adres IP widziany przez cel. Działa to doskonale, gdy trzeba przekierować jeden port na inny komputer z inną konfiguracją routingu.
scegg
6

xinetdobsługuje atrybut przekierowania, który zrobi to, co chcesz. Jak zauważyli inni, istnieje wiele programów obsługujących przekierowania.

Użycie xinetdlub inny program korzystający z tcpwrappersbiblioteki pozwoli ci zastosować ograniczenia dostępu, jeśli i kiedy będzie to konieczne.

BillThor
źródło
4

xinet / inetd. Na przykład:

przeadresować

Umożliwia przekierowanie usługi tcp na inny host. Kiedy xinetd odbiera połączenie tcp na tym porcie, odradza proces ustanawiający połączenie z hostem i określonym numerem portu i przekazuje wszystkie dane między dwoma hostami.

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

poige
źródło
Wygląda interesująco, ale ogranicza się tylko do TCP, jak już powiedziałeś
Doud,
4

Znalazłem małe narzędzie o nazwie portfwd http://portfwd.sourceforge.net/, które robi dokładnie to, czego potrzebuję (przekazywanie TCP i UDP), strona główna mówi, że była ostatnio aktualizowana w 2002 roku, ale najnowsza wersja to 2007 i działa na jądrze 2.6 .

troex
źródło
Przyjmuję odpowiedź, ponieważ wydaje się, że jest to jedyne oprogramowanie, które w pełni obsługuje zarówno protokoły TCP, jak i UDP.
troex
3

SSH Czy przekierowanie portów, o ile można tunelować połączenie SSL.

JeffG
źródło
-3

Ok, oto prosta odpowiedź, która powinna zadziałać, to nie jest nauka o rakietach, ale większość ludzi nadmiernie komplikuje odpowiedź i myli wszystkich nowych użytkowników Linuksa.

ufw pozwalają 2xxx

2xxx = bez względu na to, jaki jest Twój numer portu, wpisz to polecenie w terminalu serwera, a żądany port zostanie otwarty.

denn
źródło
Po prostu otwiera port na interfejsach skierowanych na zewnątrz serwera. Nie przekierowuje ani nie przekierowuje portu z jednego adresu IP na drugi. OTWIERA PORT.
AmirHossein