Ich habe einige Artikel zu diesem Thema gefunden, aber sie reichten mir nicht aus. Ich möchte wissen, wie das localhost
funktioniert und warum es auf vielen verschiedenen Maschinen gleich ist?
Wie localhost
blockiert das Programm den Zugriff auf die Website, wenn wir sie in der host
Datei verwenden, um die Website zu blockieren?
windows-7
localhost
hosts-file
avirk
quelle
quelle
Antworten:
Ich werde hier nicht auf den Windows-Fall eingehen, da er etwas anders ist, aber sagen wir Folgendes: In jedem * Unix-ähnlichen Betriebssystem gibt es zwei Netzwerkgeräte:
Der erste ist rein "virtuell". Es ist wie ein Ethernet-Stecker, den Sie nicht sehen können. Der zweite hat mit dem Ethernet-Stecker in Ihrem Computer zu tun.
Was macht die Loopback-Schnittstelle? Jeder Datenverkehr, den Sie an Loopback senden, wird wiederhergestellt.
So wie Ihr Ethernet-Gerät eine IP-Adresse erhält (z. B. 192.168.1.20), hat das Loopback-Gerät auch eine IP-Adresse, nämlich 127.0.0.1. Um es einfacher zu machen, können Sie auch darauf zugreifen
localhost
.Wenn Sie sich eine typische Unix-
/etc/hosts
Datei ansehen , werden Sie feststellen, dass 127.0.0.1 "localhost" zugeordnet ist. Wenn Sie also "localhost" eingeben, wird Ihr Computer 127.0.0.1 aufrufen.Und das ist der Grund, warum Sie Anwendungen "blockieren" können. Angenommen, Sie möchten nicht, dass Ihr Computer Daten an Microsoft sendet. Dann könnten Sie
microsoft.com
stattdessen einfach jede Anfrage auf 127.0.0.1 umleiten . Jeder Kontaktversuchmicrosoft.com
würde zum Scheitern führen.* Jedes System, das tatsächlich über einen Hardware-Ethernet-Port verfügt
quelle
IP-Adressen (Internet Protocol) fallen in eine von vier grundlegenden Kategorien.
Gemäß Vereinbarung ist 127.0.0.1 eine dieser Adressen, die in die letzte dieser Kategorien fallen.
Als Mensch können wir uns die IP-Nummern nicht gut merken, aber wir haben kein Problem damit, uns Namen wie superuser.com, www.google.com und andere ähnliche Namen zu merken. Wenn das Internet klein (sehr klein) war, teilten die Menschen eine "Hosts" -Datei mit anderen Menschen im Internet, damit sie sich keine Zahlen merken mussten. Diese Hostdatei enthielt Paare einer IP-Adresse und einen oder mehrere Hostnamen. Wenn jemand versuchte, auf einen Host mit seinem Namen zuzugreifen, wusste die Computersoftware genug, um ihn in der Hosts-Datei nachzuschlagen. Das Internet ist seitdem so stark gewachsen, dass wir jetzt ein Domain Name System (DNS) verwenden, um Namen in IP-Nummern aufzulösen und zusätzlich die Hosts-Datei alten Stils zu verwenden. Die meisten Computer sind so eingerichtet, dass sie zuerst die Namen in der Hosts-Datei und dann im DNS suchen, wenn dies fehlschlägt.
Nachdem Sie nun den Hintergrund haben, funktioniert dies (normalerweise) folgendermaßen:
Wenn Sie diesen Eintrag zu Ihrer Hosts-Datei hinzufügen, wird jedes Mal, wenn Ihr Computer versucht, www.foo.com aufzurufen, versucht, diese Site unter der IP-Adresse 127.0.0.1 zu erreichen, da Sie angegeben haben, dass dies die Internetadresse für www ist. foo.com. Denken Sie daran, dass 127.0.0.1 es einem Computer ermöglicht, mit sich selbst zu sprechen. Wenn Sie also versuchen, in Ihrem Browser zu 127.0.0.1 zu wechseln, wird versucht, eine Verbindung zu einem Webserver auf Ihrem Computer herzustellen. Wenn Sie 2.3.4.5 anstelle von 127.0.0.1 eingegeben hätten, hätte es beim Öffnen von www.foo.com versucht, den Computer unter der Adresse 2.3.4.5 zu kontaktieren.
Das Schlechte an der Verwendung der hosts-Datei für solche Zwecke ist, dass Sie, sobald Sie der hosts-Datei einen Eintrag hinzufügen, die Verantwortung dafür übernehmen, diese Informationen auf dem neuesten Stand zu halten. Wenn Sie den Eintrag nicht in Ihre Hosts-Datei einfügen, versucht Ihr Computer, mithilfe von DNS die IP-Adresse abzurufen, und verwendet diese IP-Adresse, um den Server zu kontaktieren.
Das Gute daran ist, dass Sie niemals zulassen möchten, dass nur der Hostname auf Ihrem Computer mit www.foo.com kommuniziert, und dass das Hinzufügen des Eintrags zu Ihrer Hostdatei (Schlüsselwort - möglicherweise) dies verhindert. Wenn das Ziel darin besteht, zu verhindern, dass jemals eine bestimmte Site auf irgendeine Weise (nicht nur über den Hostnamen) erreicht wird, gibt es andere bessere und zuverlässigere Möglichkeiten, um dies zu verhindern, wie z. B. die ordnungsgemäße Verwendung einer Firewall.
quelle
Localhost oder 127.0.0.1 ist einfach ein eingebauter 'Name' für Ihren lokalen Computer.
Das heißt, 127.0.0.1 wird als "Loopback" bezeichnet, da es sich lediglich um einen Zeiger handelt, der zurück auf Ihren Computer verweist. Es ist eine reservierte IP-Adresse, die per Definition auch als localhost geschrieben werden kann.
Der Zweck hierfür ist, dass man mit seinem Computer sprechen kann, indem man ein Signal nach außen sendet und dieses dann zurückschleift, damit das Signal auch von demselben Computer gelesen wird.
Angenommen, Sie führen einen Server auf Ihrem Computer aus. Um darauf zuzugreifen, müssen Sie eine Anforderung an den Server senden (ein Paket an 127.0.0.1 senden) und Ihr Server muss es lesen (Ihr System schleift das Paket an zurück) Ihr lokales System auf 127.0.0.1, das dann von Ihrer Serversoftware gelesen wird).
quelle
Ich habe eine Präsentation bei The TCP / IP Guide entdeckt , die mich sehr aufschlussreich fand:
Außerdem bietet Rutgers einen Netzwerkkurs an , der diese Darstellung der normalen Kommunikation zwischen Hosts enthält.
und dies ist der Loopback-Datenfluss:
quelle
Wenn Sie im zweiten Teil Ihrer Frage den Hostnamen einer Website mit der Adresse 127.0.0.1 in Ihre Hosts-Datei einfügen, bedeutet dies, dass Sie die Adresse in Ihren Browser eingeben, anstatt DNS zu verwenden, um die richtige Adresse zu finden In Ihrer Hosts-Datei wird diese zuerst in localhost aufgelöst. Statt zur Adresse der Website zu wechseln, wird nur mit Ihrem Computer gesprochen, wodurch die Website nicht geladen werden kann.
quelle