Warum wird meine Website nicht richtig angezeigt, wenn über einen anderen Computer in demselben LAN darauf zugegriffen wird?

9143
TokyoDan

Ich betreibe einen Webserver (Ubuntu) in meinem lokalen Heimnetzwerk. Ich bin hinter einem Router. Im WAN habe ich eine direkte IP. Wenn Sie sich nicht in meinem Heimnetzwerk befinden und auf meine Website über die WAN-Direkt-IP zugreifen, wird meine Website korrekt angezeigt und alles funktioniert.

In meinem Heim-LAN hinter dem Router führt der Zugriff auf meine Website über das WAN-Direkt zur Administrator-Anmeldeseite meines Routers. Das ist normal. Aber...

Wenn Sie von einem anderen Computer in meinem Heim-LAN auf meine Website zugreifen (über die IP-Adresse des eigenen LANs), gelangen Sie zur Website. Die Anzeige des Layouts ist jedoch fehlerhaft. Wenn Sie auf einen beliebigen Link klicken, gelangen Sie zur direkten WAN-IP-Adresse (der Admin-Anmeldeseite meines Routers).

Wie kann ich meine Website richtig anzeigen lassen und die Links funktionieren, wenn auf sie von meinem Heim-LAN aus zugegriffen wird?

1
Ich brauche mehr Infos als das. Wie lautet dein Domainname? Ist es in einem Ordner über LAN? Welche Links brechen? McKayla vor 13 Jahren 0

4 Antworten auf die Frage

4
Adam

Überprüfen Sie Ihre CSS- und JavaScript-URLs. Sie müssen möglicherweise von relativen zu absoluten Links wechseln, da sich das URL-Routing anscheinend von der Art und Weise unterscheidet, in der Sie versuchen, auf die Website zuzugreifen.

Die einfachste Möglichkeit besteht darin, die Ressourcen anzuzeigen, die der Browser mithilfe der Firebug- oder Entwicklertools laden möchte (Registerkarte "Ressourcen"). Stellen Sie sicher, dass Ihre Stylesheets ordnungsgemäß geladen werden (Sie sollten sie auswählen und den Inhalt anzeigen können). Wenn dies nicht der Fall ist oder wenn auf der Registerkarte "Ressourcen" ein Fehler angezeigt wird, überprüfen Sie die URL, die der Browser anzeigt, und stellen Sie sicher, dass es sich um die richtige URL handelt.

Ich wäre bereit zu wetten, dass Ihr Browser nach Stylesheets für Ihre LAN-IP-Adresse sucht, aber es sollte nach der WAN-IP-Adresse suchen.

Die LAN-IP-Adresse wird nirgends auf der Website verwendet, aus einfachen Gründen, weil die Person, die die Website erstellt hat, entfernt ist. Er greift über WAN auf den Webserver zu und kennt meine LAN-IP-Adresse nicht. TokyoDan vor 13 Jahren 0
1
Spiff

Ihr Router macht "Haarnadel-NAT" nicht richtig. Viele billige Heim-Gateways haben fehlerhaften NAT-Code, der dies nicht richtig macht.

Es klingt, als hätten Sie die Portzuordnung Ihres Routers (aka "Portweiterleitung") oder DMZ (auch "Standardhost", "Bastion-Host" usw.) korrekt eingerichtet, da von der WAN-Seite des Routers aus Wenn Sie einen Browser auf die öffentliche WAN-IP-Adresse des Routers richten, erhalten Sie die Seite von Ihrem Webserver.

Wenn Sie sich jedoch in Ihrem internen Netzwerk befinden und eine Verbindung zur öffentlichen WAN-IP-Adresse Ihres Routers herstellen, sollten Sie immer noch die Seite Ihres Webservers erhalten, nicht die Administratorseite Ihres Routers. Wenn Ihr Router seine Admin-Seite bereitstellen möchte, wenn Sie eine Verbindung zu Port 80 über seine private NAT-IP-Adresse herstellen, ist das in Ordnung. Nicht jedoch auf der öffentlichen WAN-IP-Adresse.

Wenn Sie sich auf einem privaten Client des NAT befinden und versuchen, über seine private NAT-IP-Adresse direkt auf den Webserver zuzugreifen, lädt er möglicherweise die erste HTML-Datei anhand einer URL wie " http: //192.168". 0.254 / ", aber wenn der Browser die CSS-Datei und die Bilder lädt, werden wahrscheinlich URLs wie" http://mydomain.com/styles.css "gebildet. Dies bedeutet die öffentliche WAN-IP-Adresse Ihres Routers, die aufgrund von Ihr fehlerhafter Router bedeutet, dass der Administrations-Webserver Ihres Routers diese Anforderungen selbst abfängt und nicht über diese Ressourcen verfügt.

Von meinem LAN (hinter der Firewall) Wenn ich zur WAN-IP gehe, bekomme ich die Router-Admin-Seite. Wenn ich zur LAN-IP-Adresse des Servers gehe, bekomme ich die Indexseite, aber das Layout ist alles durcheinander. Und Hyperlinks funktionieren nicht. TokyoDan vor 13 Jahren 0
@Tokyo Dan Ja, das habe ich verstanden. Genau auf diese Situation trifft meine Antwort zu. Sie sollten NICHT die Admin-Seite des Routers erhalten, wenn Sie über LAN die WAN-IP des Routers aufrufen. Sie sollten Ihren Server genauso erhalten, wie Sie es von außerhalb Ihres Netzwerks tun würden. Die Tatsache, dass Sie die Admin-Seite Ihres Routers erhalten, bedeutet, dass das NAT-Hairpinning nicht korrekt durchgeführt wird. Spiff vor 13 Jahren 0
0
Joel Coehoorn

Sie benötigen relative Links statt absoluter Links. Also statt so etwas in deiner HTML:

<link rel="stylesheet" type="text/css" href="http://example.com/mysite.css" /> <img src="http://example.com/images/someimage.png" alt="Some Image" /> 

Sie müssen es so aussehen:

<link rel="stylesheet" type="text/css" href="/mysite.css" /> <img src="/images/someimage.png" alt="Some Image" /> 
Dies kann ein wenig helfen, aber er müsste es nicht tun, wenn sein Router die NAT richtig gemacht hätte. Wenn er diese "Alle Links relativieren" -Route wählt, muss er auch seine Web-Server-Umleitungs- / Umschreiberegeln neu konfigurieren. Zum Beispiel wird die Standardinstallation von Apache auf meinem Betriebssystem "http://192.168.0.1" auf "http://mydomain.com/" umleiten (oops, Markdown aß die http: // in diesen), nur um sie zu verlassen Das abschließende "/" und eine Umleitung wie dieses würden sich erneut von seinem defekten NAT-Gateway lösen. Spiff vor 13 Jahren 0
Wo schaue ich nach oder welche Einstellungen prüfe ich in meinem Router, um sicherzustellen, dass ich das haipin NAT-Setup richtig eingerichtet habe? TokyoDan vor 13 Jahren 0
0
RandomUser

Es wird versucht, Ihr Design von außerhalb Ihres Netzwerks zu laden, indem Sie Ihren Domainnamen verwenden (z. B. site.com).

Eine einfache Lösung besteht darin, Ihre Datei / etc / hosts zu bearbeiten und hinzuzufügen

IP.OF.LOCAL.WEBSERVER site.com sitehostname