Ordnen Sie die IP einer anderen IP zu

7

Angenommen, das folgende Szenario, wenn ich einen lokalen Computer (A) habe, fordert einen anderen Computer (B) an, der die interne IP von B verwendet, ohne die Ports zu berücksichtigen. A und B befinden sich jedoch nicht im selben Netzwerk, B hat jedoch eine öffentliche IP. Was ich tun möchte, ist, wenn ich Maschine B von Maschine A unter Verwendung der internen IP von B anfordere, dann passiert etwas Routing und übersetzt die interne IP von B in seine öffentliche IP. Wie kann diese Funktionalität erreicht werden, wenn das Betriebssystem der beiden Computer Ubuntu 14.04 ist?

Yehia Elshater
quelle
1
Mögliches Duplikat von iptables ändert die Ziel-IP ohne DNAT
Dusan Bajic
1
Ich denke, was Sie hier wollen, ist eine einfache Maskerade.
Konrad Gajewski
@ dusan.bajic danke, ich habe iptables -t nat -A OUTPUT -p tcp -d 192.168.1.15 -j DNAT - zum Ziel 54.3.22.1 versucht, wobei 54.3.22.1 die öffentliche IP von B und 192.168.1.15 die private IP von B ist . Aber es hat nicht funktioniert.
Yehia Elshater
@KonradGajewski Danke. Können Sie bitte angeben, wie eine einfache Maskerade mit Linux-Befehlen durchgeführt werden soll?
Yehia Elshater
1
@KonradGajewski Nein, da ich keine Kontrolle über die Anwendung habe, die auf A bereitgestellt wird und B über seine private IP anfordert.
Yehia Elshater

Antworten:

6

Ok, nach einem kleinen Gespräch mit Yahia Zakaria konnte ich das Problem genau bestimmen. Die App verwendet mehr als TCP für die Kommunikation, daher sollte die richtige DNAT aussehen:

iptables -t nat -A OUTPUT -d 192.168.1.15 -j DNAT --to-destination 54.3.22.1

Und das war's auch schon.

Konrad Gajewski
quelle
0

Fügen Sie die IP-Adresse und die entsprechenden Hostnamen / Aliase zu / etc / hosts hinzu.

djm
quelle
Vielen Dank. Aber bei mir hat es nicht funktioniert. Angenommen, die interne IP von B ist 192.168.1.15 und die öffentliche IP von B ist 54.3.22.1. Ich habe den folgenden Eintrag in / etc / hosts von Maschine A eingefügt: 54.3.22.1 192.168.1.15, aber nicht funktioniert!
Yehia Elshater
Gotcha, ich habe die Frage falsch verstanden. Das wird ziemlich schwierig, nur mit der Hosts-Datei zu erreichen. Wenn Ihr Endziel darin besteht, zur öffentlichen IP zu gelangen, ist dies die statische IP / Hostname, die ich in / etc / hosts festlegen würde.
DJM