Ich habe ein Dienst-Setup, das nach einer erfolgreichen Anmeldung (Couchbase) umleitet, aber die IP, an die es überträgt, ist eine lokale, die der Client, mit dem eine Verbindung hergestellt wird, nicht erreichen kann.

Wie kann ich iptables so einrichten, dass ich vom Client selbst generierten Datenverkehr an einen anderen Port weiterleiten kann?

  • Client verbindet sich mit Server1
  • Server1 sendet dem Client die IP-Adresse, mit der eine Verbindung hergestellt werden soll (die lokal für Server1 ist, nicht für Client)
  • Client wird an 192.168.2.53:11210 umgeleitet (Kann nicht erreichen)
  • IPTables leitet den gesamten Datenverkehr, der an 192.168.2.53:11210 gesendet wird, an outside_ip:11210

Der HTTP-Dienst gibt nur eine IP zurück, zu der eine Verbindung hergestellt werden soll, und leitet so den Client um, jedoch nicht mit einer HTTP-Umleitung.

Ich bin mit IPTables nicht zufrieden, also bin ich nicht begierig, damit zu experimentieren/durcheinander zu kommen und meine SSH-Verbindung zu verlieren. Ich habe einige Beispiele gesehen, aber keines von ihnen scheint zu funktionieren oder genau das zu tun, was ich will.

answer

Wenn Sie den Webservice nicht dazu bringen können, dem Client eine gültige routingfähige öffentliche IP-Adresse zuzuweisen, wird dies nie funktionieren, es sei denn, Sie schreiben dem Client, dass er die vom Webservice bereitgestellte IP-Adresse ignoriert. iptableskann dies nicht beheben (ohne ein Protokollinspektionsmodul wie zu schreiben ip_masq_ftpund dann davon auszugehen, dass Sie kein SSL verwenden).

Wenn Sie den Webservice dazu bringen können, eine ordnungsgemäße öffentliche IP eines Computers zuzuweisen, der Zugang zum Internet und zum privaten Netzwerk hat, dann wäre es am einfachsten, rinetdauf diesem Computer zu laufen, auf der Internet-Seite zu lauschen und Verbindungen weiterzuleiten auf die private Seite, aber damit dies funktioniert, muss der Port für dieselbe IP konsistent sein (Sie können mehrere Ports umleiten lassen, aber der eingehende Port 11210 muss immer auf 192.168.2.53) gehen (Sie können auf einen anderen Port umleiten , wenn Sie also ...53:11210 und ...54:11210 haben, können Sie :11211 verwenden, um zu einem von ihnen umzuleiten, aber der Webservice muss dies wissen).