Wie kann ich die Portumleitung lokal aktivieren?

1

Siehe diesen Befehl:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

Ich verwende , dass all eingehenden Datenverkehr zum Umleiten von 80zu 8080, weil der Apache - Server 2 auf dem Computer als ein nicht - privilegierten Benutzer ausgeführt wird, und nur Wurzel kann gut bekannte Ports öffnen. Es wird in gespeichert /etc/iptables/rules.v4und funktioniert, wenn ich die Website auf einem Remotecomputer öffne. Der virtuelle Host ist gebunden an 192.168.X.X:8080.

Wenn ich jedoch in diesen Server ssh und einen Browser mit aktivierter X11Forwarding-Funktion öffne, wird durch Eingabe der IP-Adresse in die Adressleiste die Website nicht geöffnet, sondern die Verbindung wird unterbrochen. Nur wenn ich :8080die Adresse hinzufüge klappt es. Unterm Strich funktioniert das Port-Routing also nicht, wenn es auf demselben Computer geöffnet wird.

Meine Frage ist: Wie muss ich eine Routing-Direktive ändern oder hinzufügen, damit dies auch lokal funktioniert?

BadSnowflake
quelle

Antworten:

1

Der Grund, warum dies nicht funktioniert hat, ist, dass Pakete aus lokalen Quellen die Routing-Phase nicht durchlaufen haben, da für lokale Pakete kein Routing erforderlich ist. Daher gilt diese Regel nicht. Um Pakete aus der lokalen Quelle weiterzuleiten, müssen Sie diese direkt an OUTPUT senden:

iptables -t nat -I OUTPUT -p tcp -o lo --dport 80 -j REDIRECT --to-ports 8080
BadSnowflake
quelle