
Ich habe einen Server mit mehreren zugeordneten IP-Adressen. Ich versuche, einen node.js-Webserver (den ich nicht als Root ausführen möchte) zu betreiben, wobei ich nur eine dieser IP-Adressen verwende (es wäre sehr schlecht, wenn der Datenverkehr von allen IP-Adressen weitergeleitet würde).
Durch die Suche im Superuser sah es so aus, als ob dies mit iptables möglich sein könnte:
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 --source 212.333.111.222 -j REDIRECT --to-port 9020
Ich verstehe jedoch nicht, warum eth0 benötigt wird.
Entsprechend:
http://blog.softlayer.com/2011/iptables-tips-and-tricks-port-redirection/
Dies könnte folgendermaßen geschehen:
iptables -t nat -A PREROUTING -p tcp --dport 2525 -j REDIRECT --to-ports 25
Was ist die richtige Art, Datenverkehr von einer einzelnen IP auf Port 80, sagen wir 111.111.111.111:80, an einen anderen Port auf demselben Server, sagen wir 111.111.111.111:8765, weiterzuleiten?
Vielen Dank für Ihre Hilfe!
Antwort1
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8765
Verwenden Sie anstelle der IP-Adresse den Schnittstellennamen. Das heißt, eth0
Sie können stattdessen die Schnittstelle Ihrer Wahl verwenden.
Diese Regel besagt iptables:
- Machen Sie es auf PreRouting
- Mach das nicht
- Auf der Schnittstelle eth0
- Protokoll ist TCP
- Der Zielport zum Abgleichen ist 80.
- Leiten Sie es auf Port 8765 um