Ich möchte den gesamten Datenverkehr von Port 443 auf den internen Port 8080 umleiten. Ich verwende diese Konfiguration für iptables:
iptables -t nat -I PREROUTING --source 0/0 --destination 0/0 -p tcp \
--dport 443 -j REDIRECT --to-ports 8080
Dies funktioniert für alle externen Clients. Wenn ich jedoch versuche, von derselben Maschine auf den Port 443 zuzugreifen, wird ein Verbindungsfehler zurückgewiesen.
wget https://localhost
Wie kann ich die iptables-Regel erweitern, um auch lokalen Datenverkehr umzuleiten?
Antworten:
PREROUTING wird von der Loopback-Schnittstelle nicht verwendet. Sie müssen außerdem eine OUTPUT-Regel hinzufügen:
quelle
So leiten Sie Pakete von localhost auf einen anderen Computer um:
wird funktionieren, ABER Sie müssen auch diese Option im Kernel aktivieren:
Ohne diese Kerneleinstellung wird es nicht funktionieren.
quelle
Wie wäre es damit?
quelle
Sie sagten, Sie bekommen einen Verbindungsfehler verweigert . Dies bedeutet, dass auf dem Port, zu dem Sie eine Verbindung herstellen möchten, kein lokaler Prozess lauscht! Verwenden Sie den folgenden Befehl, um die Empfangsvorgänge zu überprüfen:
Nachdem Sie die Regel angewendet haben, sollte ein Prozess den Port 8080 überwachen, um eine Verbindung herzustellen.
Es scheint, dass Sie stattdessen die folgende Regel haben sollten:
Denken Sie daran, dass Sie vom lokalen Host senden. Sie müssen also das Ausgabepaket umleiten.
quelle