Wie funktioniert localhost 127.0.0.1?

17

Ich habe einige Artikel zu diesem Thema gefunden, aber sie reichten mir nicht aus. Ich möchte wissen, wie das localhostfunktioniert und warum es auf vielen verschiedenen Maschinen gleich ist?

Wie localhostblockiert das Programm den Zugriff auf die Website, wenn wir sie in der hostDatei verwenden, um die Website zu blockieren?

avirk
quelle
2
Es tut mir leid, aber Sie haben mich in der zweiten Zeile Ihrer Frage völlig verloren ... was meinen Sie?
Windos
1
@Windos, Wenn Sie der Hosts-Datei einen Eintrag wie "127.0.0.1 www.blah.com" hinzufügen, wird diese Site an localhost umgeleitet (für die Arbeit mit IE8 ohnehin)
tzup
Siehe auch Was ist die Loopback-Adresse (dh 127.0.0.1)?
G-Man sagt, dass Monica am

Antworten:

23

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:

  • Ein Loopback-Gerät
  • Ein Ethernet-Gerät

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.

Bildbeschreibung hier eingeben

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/hostsDatei 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.comstattdessen einfach jede Anfrage auf 127.0.0.1 umleiten . Jeder Kontaktversuch microsoft.comwürde zum Scheitern führen.

* Jedes System, das tatsächlich über einen Hardware-Ethernet-Port verfügt

slhck
quelle
In Windows wird das DNS-Subsystem localhost auf 127.0.0.1 auflösen, und der Datenverkehr auf 127.0.0.1 wird nicht einmal an eine Schnittstelle geleitet. Der Netzwerkstapel wird direkt zurückgeschleift (dies ist genau wie bei Unix, jedoch ohne die virtuelle Schnittstelle) als Manifestation des Prozesses).
jcrawfordor
Obwohl können Sie den Microsoft Loopback - Adapter installieren, aber es ist nicht ganz das gleiche.
Slhck
Heutzutage unterstützen viele Betriebssysteme 0.0.0.0. Verwenden Sie dies stattdessen zum Blockieren von Websites. Vermeidet die Schleife ...
Tamara Wijsman
8

IP-Adressen (Internet Protocol) fallen in eine von vier grundlegenden Kategorien.

  1. Adressen für die Kommunikation mit anderen Computern auf der ganzen Welt,
  2. Adressen für die Kommunikation mit Computern nur innerhalb eines bestimmten Unternehmens oder Netzwerks,
  3. Adressen, die zum Übertragen von Informationen zwischen Computern in einem Netzwerk verwendet werden,
  4. Adressen, über die ein Computer mit sich selbst kommunizieren kann.

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.

127.0.0.1 localhost
127.0.0.1 www.foo.com
127.0.0.1 foo.com

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.

KB CMDBA
quelle
Heutzutage unterstützen viele Betriebssysteme 0.0.0.0. Verwenden Sie dies stattdessen zum Blockieren von Websites. Vermeidet die Schleife ...
Tamara Wijsman
7

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).

akseli
quelle
5

Ich habe eine Präsentation bei The TCP / IP Guide entdeckt , die mich sehr aufschlussreich fand:

Wenn eine TCP / IP-Anwendung Informationen senden möchte, werden diese Informationen normalerweise über die Protokollebenen an IP weitergeleitet, wo sie in einem IP-Datagramm eingekapselt werden . Dieses Datagramm wird dann zur Übertragung an den nächsten Hop auf dem Weg zum IP-Ziel an die Datenverbindungsschicht des physischen Netzwerks des Geräts weitergeleitet.

Für die Loopback- Funktionalität ist jedoch ein spezieller Adressbereich vorgesehen . Dies ist der Bereich von 127.0.0.0 bis 127.255.255.255. IP - Datagramme von einem Host zu einem 127 gesendet x . x . x Loopback-Adressen werden nicht zur Übertragung an die Datenverbindungsschicht weitergegeben. Stattdessen „kehren“ sie auf IP-Ebene zum Quellgerät zurück. Im Wesentlichen stellt dies ein "Kurzschließen" des normalen Protokollstapels dar; Daten werden von der Layer-3-IP-Implementierung eines Geräts gesendet und sofort von diesem empfangen.


Außerdem bietet Rutgers einen Netzwerkkurs an , der diese Darstellung der normalen Kommunikation zwischen Hosts enthält.

normale Kommunikation zwischen Hosts

und dies ist der Loopback-Datenfluss:

                                                    Loopback-Datenfluss

Scott
quelle
4

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.

Col
quelle
Heutzutage unterstützen viele Betriebssysteme 0.0.0.0. Verwenden Sie dies stattdessen zum Blockieren von Websites. Vermeidet die Schleife ...
Tamara Wijsman