
Ich habe die Portweiterleitung gemäß diesem Tutorial durchgeführt: http://www.debuntu.org/wie-man-den-Netzwerkverkehr-auf-eine-neue-IP-mit-iptables-umleitet/
iptables -t nat -A PREROUTING -p tcp --dport 1111 -j DNAT --to-destination 2.2.2.2:1111
iptables -t nat -A POSTROUTING -j MASQUERADE
Ich möchte aber nur die Ports mit den Weiterleitungen MASKERIEREN, da ich auf demselben Server einen Webserver habe und der Webserver nicht mehr funktioniert, wenn ich den gesamten Datenverkehr MASKERIERE.
Irgendeine Idee?
LÖSUNG:
iptables -t nat -A POSTROUTING -d 2.2.2.2 -p tcp --dport 1111 -j SNAT --to-source 2.2.2.1
Antwort1
wenn duWirklichmöchten, MASQUERADE
dann ist die korrekte Vorgehensweise wie folgt:
iptables -t nat -A PREROUTING -p tcp --dport 1111 -j DNAT --to-destination 2.2.2.2:1111
iptables -t nat -A POSTROUTING -d 2.2.2.2 -p tcp --dport 1111 -j MASQUERADE
Diese Methode MASQUERADE
wird nur auf DNAT-Pakete angewendet.
Beachten Sie jedoch, dass dies MASQUERADE
hauptsächlich für dynamische IP-Fälle (wie DFÜ) vorgesehen ist und im Falle einer statischen IP SNAT
eher so verwendet werden sollte, wie Sie es vorgeschlagen haben. Aus iptables
der Manpage:
Es sollte nur bei dynamisch zugewiesenen IP-Verbindungen (DFÜ-Verbindungen) verwendet werden: Wenn Sie eine statische IP-Adresse haben, sollten Sie das SNAT-Ziel verwenden. Masquerading entspricht der Angabe einer Zuordnung zur IP-Adresse der Schnittstelle, über die das Paket gesendet wird, hat aber auch zur Folge, dass Verbindungen vergessen werden, wenn die Schnittstelle ausfällt. Dies ist das richtige Verhalten, wenn es unwahrscheinlich ist, dass die nächste DFÜ-Verbindung dieselbe Schnittstellenadresse hat (und daher alle hergestellten Verbindungen ohnehin verloren gehen).
Es gibt jedoch für beide einen Vorbehalt MASQUERADE
: SNAT
Es funktioniert nicht, wenn 2.2.2.2 ein VIP auf derselben Maschine ist.