Frage Portweiterleitung unter Linux ohne iptables?


Ich habe einen Linux VPS (virtuozzo) Server und ich muss Portweiterleitung einrichten, aber mein Hosting-Provider erlaubt nicht iptables-nat Kernel-Module so iptables -t nat - funktioniert nicht.

Ich suche nach anderen Möglichkeiten, wie es geht. Ich weiß, ich kann Port mit Hilfe von openssh, aber ich muss 20+ verschiedene Ports, TCP und UDP weiterleiten, so dass dies keine Option ist.

Gibt es irgendeine Software für Linux, die Portweiterleitung durchführen kann?


31
2018-03-26 12:53


Ursprung


huh gute frage +1. ich bin mir einer lösung nicht bewusst und freue mich darauf zu sehen, ob es hier etwas gibt. - The Shurrican
Und was ist mit einem Programm, mit dem Sie Ports basierend auf der Quell-IP an verschiedene Ziele weiterleiten können? - dpk
Vermeiden Sie das Problem vollständig, indem Sie niemals Virtuozzo / OpenVZ-basierte VPS verwenden. - Michael Hampton♦
@MichaelHampton: Nicht extrem konstruktiv ... - Nicolas Raoul


Antworten:


Verwenden Sie das Tool namens "socat", es ist ein großartiges Werkzeug für solche Dinge und es ist bereits verpackt in vielen Linux-Distributionen. Lesen Sie hier darüber nach: http://www.dest-unreach.org/socat/doc/README

Port-Weiterleitungsbeispiel mit socat:

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

Dies leitet alle TCP-Verbindungen auf Port 80 zu www.yourdomain.org Port 8080 TCP um.


41
2018-03-26 17:14



Vergiss nicht, dass HTTPS standardmäßig Port 443 statt Port 80 ist :) - keiki
Socat ist das einzige Tool, das für mich auf einem ipv6-only Raspberry Pi funktioniert hat - chotchki
Perfekt, löste mein Problem sofort. Beachten Sie, dass Sie sicherstellen müssen, dass der eingehende Port in iptables geöffnet ist, wenn Sie einen solchen haben. - jancha


Wie wäre es mit rinetd ?
Es ist ein Daemon, der TCP-Verbindungen umleitet. Sehen Sie sich die Manpage an, um zu sehen, ob sie Ihren Anforderungen entspricht: http://www.boutell.com/rinetd/


8
2018-03-26 13:21



Sieht interessant aus, ist aber wie gesagt nur auf TCP beschränkt. - troex
UDP wird jetzt unterstützt: github.com/samhocevar/rinetd - kev


Es gibt ein kleines, leichtes Ressourcenprogramm namens redir Das ist ziemlich konfigurierbar.

apt-get install redir auf Debian-basierten Distributionen.


8
2018-03-26 20:28



Ich habe dieses Tool in der Vergangenheit verwendet und es funktioniert sehr gut ... - Alex


xinetd unterstützt ein Redirect-Attribut, das das macht, was Sie wollen. Wie andere bemerkt haben, gibt es eine Reihe von Programmen, die Weiterleitungen handhaben.

Verwenden xinetd oder ein anderes Programm, das den tcpwrappers Bibliothek ermöglicht es Ihnen, Zugriffsbeschränkungen anzuwenden, wenn und wenn es notwendig wird.


5
2018-03-26 19:11





xinet / inetd. Für e. G.:

umleiten

Ermöglicht die Weiterleitung eines TCP-Dienstes an einen anderen Host. Wenn xinetd eine tcp-Verbindung an diesem Port empfängt, erzeugt es einen Prozess, der eine Verbindung zum angegebenen Host und der angegebenen Portnummer herstellt, und leitet alle Daten zwischen den beiden Hosts weiter.

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


3
2018-03-26 13:24



Sieht interessant aus, ist aber wie gesagt nur auf TCP beschränkt - Doud


Ich habe kleines util namens portfwd gefunden http://portfwd.sourceforge.net/ es tut genau das, was ich brauche (TCP und UDP-Weiterleitung), Homepage sagt, es wurde zuletzt im Jahr 2002 aktualisiert, aber die neueste Version ist 2007, und es funktioniert auf 2.6 Kernel.


3
2018-03-26 13:33



Ich akzeptiere meine Antwort, da dies die einzige Software ist, die sowohl TCP- als auch UDP-Protokolle vollständig unterstützt. - troex


SSH Führt eine Portweiterleitung durch, solange Sie in einer SSL-Verbindung tunneln können.


2
2018-03-26 13:52





Ok, hier ist die einfache Antwort, die funktionieren sollte, es ist kein Hexenwerk, aber die meisten Leute machen die Antwort komplizierter und verwirren das Neue an Linux-Benutzer.

ufw erlauben 2xxx 

2xxx = was immer Ihre Portnummer ist, geben Sie einfach diesen Befehl in Ihr Server-Terminal ein und der gewünschte Port wird geöffnet.


-2
2018-02-09 15:44



Es öffnet nur den Port auf den Schnittstellen, die außerhalb des Servers liegen. Es leitet den Port nicht von einer IP zur anderen um oder leitet sie weiter. IT öffnet den Hafen. - TechJS