Greifen Sie über die öffentliche IP auf die interne IP zu

38

Ich habe ein DSL-Modem mit einer öffentlichen IP-Adresse ( 201.206.x.x) und ich habe einen Webserver in meinem internen Netzwerk ( 192.168.0.50).

Ich habe das Modem so eingerichtet, dass Anforderungen an Port 80 an meinen Webserver weitergeleitet werden. Wenn ich also 201.206.x.xvon außerhalb meines Netzwerks zugreife , wird dort meine Webseite angezeigt. Dasselbe passiert, wenn ich 192.168.0.50von einem Computer in meinem Netzwerk aus zugreife .

Das Problem besteht nun darin 201.206.x.x, dass der Browser beim Zugriff von meinem internen Netzwerk aus versucht, eine Verbindung zur DSL-Modemkonfiguration herzustellen, anstatt meine Anforderung an meinen Webserver umzuleiten.

Welche Einstellungen muss ich im Modem ändern, um diese Umleitung einzurichten?

willvv
quelle
Eine Variation des Problems: Ich habe mehrere (2) Hosting-Server und einen DNS (BIND9) für die internen Anforderungen konfiguriert. Wie ordne ich (auf verschiedenen Hosting-Servern) externe Anforderungen (auf öffentlichen IP-Adressen) basierend auf dem Hostnamen zu?
Kunal B.

Antworten:

20

Das Problem ist, dass das Umschreiben von Paketen im Allgemeinen nur beim Durchqueren der Firewall erfolgen kann. Im Allgemeinen können Router das erforderliche Neuschreiben nicht ausführen, wenn die Anforderung aus demselben Netzwerk ankommt, in das die Anforderung neu geschrieben werden würde. Die übliche Lösung für dieses Problem besteht darin, einen Webproxy außerhalb des Netzwerks zu platzieren, der die Anforderung durch Ihre Firewall zurückleitet.

Ich vermute, dass Ihr spezielles Problem darin besteht, dass Sie über den DNS-Hostnamen auf die Website zugreifen möchten. Sie können damit umgehen, indem Sie "Split-Horizon" -DNS verwenden. Dabei wird darauf geachtet, woher die Anforderung stammt, und die entsprechenden Antworten gegeben: Wenn die Anforderung aus Ihrem Netzwerk stammt, wird die 192.168.0.50 an Anforderungen ausgeteilt, die von Ihrem stammen Netzwerk und die öffentliche IP an alle anderen.

Beide Vorschläge können auf jedem Host außerhalb Ihres Netzwerks implementiert werden, z. B. auf einer (kostenlosen) Amazon EC2-Mikroinstanz.

Insyte
quelle
Vielen Dank, obwohl ich denke, dass ich bei der Bearbeitung der HOSTS-Dateien bleiben werde, da es sich im Grunde genommen um eine persönliche Website handelt, die ich für Tests von Websites verwende, an denen ich arbeite. Der PC ist nicht einmal rund um die Uhr in Betrieb.
3
Ich habe dieses Problem in meinem eigenen Heimnetzwerk gelöst, indem ich auf meinem eigenen DNS-Server (der auch in meinem Heimnetzwerk ausgeführt wird) einen A-Eintrag mit demselben Namen wie mein externer dyndns-Name hinzugefügt habe. Der A-Datensatz zeigt auf den richtigen Ort in meinem Heimnetzwerk, ebenso wie der umgekehrte PTR-Datensatz. Aber natürlich betreibt nicht jeder sein eigenes DNS ...
LawrenceC
14

Ich würde sagen, dass @Insyte auf etwas ist, wenn er / sie über das Problem spricht, dass es sich um ein Problem mit der DNS-Auflösung handelt. Dies bedeutet dann, dass das Problem das Umschreiben von Paketen ist.

Angenommen, Sie haben das folgende Setup:

  1. Öffentliche IP: 201.206.x.y
  2. Private IP: 192.168.0.50
  3. Portweiterleitung für alle 80 (und 443, wenn Sie SSL ausführen) auf IP 201.206.x.y192.168.0.50

Anschließend geben Sie Folgendes in Ihren Browser ein, während Sie sich in Ihrem internen Netzwerk befinden:

http://www.yourwebsite.com

und der Fehler tritt auf. Also, Lösung: Hacken Sie Ihre Hosts-Datei.

Gehen Sie unter Windows zu C:\windows\system32\drivers\etc\hosts (es gibt keine Erweiterung für diese Datei). Unter Linux befindet sich die Datei in /etc/hosts.

Wenn Sie diese Datei im Editor öffnen, werden alle Einträge angezeigt, die zum Überschreiben von DNS verwendet werden. Wenn Sie diese Datei aktualisieren möchten, müssen Sie Notepad (oder ein anderes Programm, mit dem Sie die Datei bearbeiten) mit Administratorrechten öffnen. Andernfalls können Sie die Datei nicht speichern.

Fügen Sie dies zu Ihrer Hosts-Datei hinzu:

192.168.0.50 www.yourwebsite.com

Dann starte deinen Browser neu , gib die URL ein und los geht's! Es funktioniert. Das bedeutet, dass Ihr Browser nicht auf Ihren DNS angewiesen ist, um Ihre Domain in die IP aufzulösen. Stattdessen setzen wir dies außer Kraft und sagen: Browser, gehen Sie einfach zu meiner internen IP für diesen Domainnamen, anstatt DNS nach der IP-Adresse zu fragen .

Wenn Sie sich in einem Büro befinden, können Sie alle Personen, die auf diese interne Website zugreifen müssen, dazu bringen, ihre Hosts-Datei zu hacken. Wenn Sie über einen internen DNS verfügen, können Sie einen Eintrag hinzufügen.

Eine andere Idee ist es, einen internen Proxy-Server (für alles Surfen im Internet usw.) zu haben und dann die Hosts-Datei auf dem Proxy-Server zu hacken. Das bedeutet, dass Ihr Browser " Proxy" sagt. Können Sie mir bitte die Ressource besorgen,http://www.mywebsite.com und der Proxy sagt " Sicher". Da mir gesagt wurde, dass ich DNS für diese Domain ignorieren soll, gebe ich einfach die fest codierte IP an Meine Hosts-Datei .

Pure.Krome
quelle
Ja, ich hatte dies tatsächlich vor dem Posten, ich wollte nur über die tatsächliche IP darauf zugreifen können, aber ich denke, ich kann damit leben, da mein Modem keine NAT-Reflektion hat (wie von @MaQleod vorgeschlagen).
3
Was ist mit einem Laptop oder Smartphone, das häufig über ein internes oder externes Netzwerk auf dieselbe Site zugreift ?
TREE
@ Tree können Sie bitte ausarbeiten. Ich habe Ihre Frage nicht ganz verstanden.
Pure.Krome
Ich habe ein sehr ähnliches Setup, außer dass ich Domänennamen verwende. Von außerhalb des Netzwerks wird meine Domain in meine externe IP und von innen in die interne IP aufgelöst. Ich habe Laptops und Smartphones, die häufig von innen und außen zugreifen, sodass das Hacken der Hosts-Datei nicht funktioniert. Was ich getan habe, ist im Grunde, was Ihre (Pure.Krome) andere Antwort vorschlägt, nur anstatt einen externen Server zu verwenden, sage ich dem DHCP-Server auf dem Router nur, dass er einen internen DNS-Server voranstellen soll. Meistens funktioniert es, aber es gibt ärgerliche Verzögerungen beim Umschalten von Netzwerken, bevor sich die Dinge auflösen.
BAUM
9

Dies ist ein häufiges Problem bei der Art und Weise, wie einige Router den für ihre öffentliche Adresse bestimmten Datenverkehr von einer internen Adresse aus verarbeiten. Sie befolgen nicht dieselben Regeln für die Portweiterleitung wie Anforderungen von außerhalb des Netzwerks. Was Sie in Ihren Routern suchen müssen, ist die NAT-Reflektion . Auf diese Weise kann der Router interne Anforderungen für die öffentliche IP-Adresse verarbeiten, um dieselben Regeln für die Portweiterleitung zu verwenden, als ob die Anforderung von außerhalb des Netzwerks stammte.

MaQleod
quelle
1
NAT-Reflexion. Ich glaube, das habe ich gesucht. Leider hat mein Modem das nicht. Vielen Dank!
Was tun, wenn Ihr Modem NAT-Loopback nicht unterstützt?
PrimitiveNom
2

Ich könnte dir besser helfen, wenn du mir deine Modemmarke und dein Modemmodell gibst ...

Was hier jedoch passiert, ist, dass normalerweise eine Router- oder Modem-Konfigurationsseite nur angezeigt wird, wenn die interne IP-Adresse (192.168.0.1) aufgerufen wird.

Aber was hier zu passieren scheint, ist, dass es die eingehende Anfrage identifiziert (201.206.xx) Da es von innen kommt, beschließt es, Ihnen die Konfigurationsseite anstatt der normalen Route zu Ihrem Webserver zu geben ...

Wenn Sie ein Consumer-Modem verwenden, können Sie dies wahrscheinlich nicht ändern. (Entschuldigung)

Aber vielleicht können Sie Folgendes tun: Versuchen Sie, in Ihrer Admin-Konfigurationsseite zu überprüfen, ob Einstellungen zum Abhören vorhanden sind

Dort können Sie entweder versuchen, Ihre Administrationsseite auf einen anderen Port umzustellen, oder die Adressen einschränken, auf die sie warten

HTDutchy
quelle
2

Möglicherweise ist das Problem, dass die Remoteverwaltung zulässig ist.

Plamen
quelle
2

Sie können eine Route hinzufügen, um direkt über die lokale IP auf die öffentliche IP des Servers zuzugreifen. Unter Windows ist der Befehl ähnlich

route add [public IP] mask 255.255.255.255 [the server's local IP]

Um eine dauerhafte Route hinzuzufügen, fügen Sie -pdem obigen Befehl einen Parameter hinzu.

Bei jedem Besuch der öffentlichen IP geht der Computer dann über die lokale IP des Servers als Gateway. Da der Server seine eigene öffentliche IP kennt, verarbeitet er das Paket von sich aus, anstatt es an das lokale Netzwerk weiterzuleiten.

Sie müssen sicherstellen, dass die lokale IP des Servers statisch ist.

Qevan
quelle
Warum kennt der Server seine eigene öffentliche IP-Adresse?
G-Man sagt, dass Monica am
Server kennen sicherlich ihre IPs. Entweder statische oder dynamische IPs. Ich bin nicht sicher, wie das Routing genau funktioniert. Ich vermute, jede Maschine hat eine Streckenkarte. Wenn es Pakete erhalten hat, entscheidet es, ob es das Paket verarbeiten soll.
Qevan
0

Dasselbe Problem haben. Ich konnte dieses Problem beheben, indem ich den DNS-Hostnamen zur DNS-Hostzuordnungsliste meines Routers hinzufügte. Ich habe diese Einstellungen in der Liste der erweiterten Optionen meines Routers gefunden.

Gibado
quelle
0

Auf meinem Router musste ich die "NAT-Beschleunigung" (Cut Through Forwarding) ausschalten, da dieser NAT-Loopback brach ...

Gaymon Howard Wright III
quelle