Localhost (127.0.0.1)
Wenn Sie (oder Ihr Computer) eine IP-Adresse aufrufen, wollen Sie in den meisten Fällen Kontakt zu einem anderen Rechner im Internet aufnehmen. Wenn Sie aber die IP-Adresse 127.0.0.1 anwählen, kommunizieren Sie mit dem Localhost – und damit im Prinzip mit Ihrem eigenen Computer. Aber warum sollte man virtuelle Selbstgespräche führen? Wofür braucht man den Localhost und wie funktioniert der Rückbezug?
- Inklusive Wildcard-SSL-Zertifikat
- Inklusive Domain Lock
- Inklusive 2 GB E-Mail-Postfach
Was genau ist der Localhost?
Der erste Zugang beim Erklären von Localhost ist immer, dass es sich um den eigenen Computer handelt: Wenn Sie den Localhost aufrufen, spricht Ihr Computer quasi mit sich selbst. Dies ist allerdings eine verkürzte Betrachtungsweise. Beim Localhost geht es eben nicht direkt um den eigenen PC. Dieser hat in den meisten Fällen innerhalb des persönlichen Netzwerkes eine IP-Adresse wie 192.168.0.1. Die Adresse, mit der Sie im Internet unterwegs sind, ist wiederum eine andere und wird in der Regel vom Internetanbieter vergeben – meist dynamisch. Von einem Localhost spricht man dann, wenn auf dem eigenen Computer ein Server genutzt wird.
Dies bedeutet im Umkehrschluss, dass der Begriff nur im Kontext von Netzwerken Anwendung findet. „Localhost“ ist dabei nicht nur die Bezeichnung für den virtuellen Server, sondern auch dessen Domain-Name. Genau wie .test, .example oder .invalid ist auch .localhost eine Top-Level-Domain, die für Dokumentations- und Testzwecke reserviert ist. Wenn Sie versuchen, die Domain aufzurufen, wird eine Loopback-Schleife ausgelöst. Sollten Sie also im Browser „http://localhost“ aufrufen, wird die Anfrage nicht über den Router ins Internet weitergeleitet, sondern bleibt im eigenen System. Localhost hat die IP-Adresse 127.0.0.1, die auf den Server auf dem eigenen Rechner referiert.
127.0.0.1 – wie funktioniert Loopback?
Man verwendet IP-Adressen innerhalb eines Netzwerks, damit man untereinander kommunizieren kann. Jeder Teilnehmer im Netzwerk hat eine eigene Adresse. Datenpakete, die per TCP/IP versendet werden, erreichen aufgrund dieses Systems das korrekte Ziel. Bei dem Protokollpaar Transmission Control Protocol (TCP) und Internet Protocol (IP) handelt es sich um einen der Grundpfeiler des Internets. Über das Internet hinaus verwendet man TCP/IP aber auch in lokalen Netzwerken. Das Internet Protocol ist bei der Übertragung dafür verantwortlich, dass man mithilfe von IP-Adresse und Subnetzmaske Teilnehmer in einem Netzwerk adressieren kann.
Die Vergabe von öffentlichen IP-Adressen (also solche, die man über das Internet erreicht) wird durch eine internationale Organisation geregelt: die Internet Corporation for Assigned Names and Numbers (ICANN). Die ICANN kümmert sich auch um das Domain Name System (DNS), also um die Vergabe von Domain-Namen. Bestimmte Adressbereiche sind dabei aber für besondere Zwecke reserviert, z. B. der Bereich von 127.0.0.0 bis 127.255.255.255. Man mag sich fragen, warum genau dieser Bereich gewählt wurde. Eine gesicherte Information gibt es nicht, aber man kann sich einer Antwort zumindest annähern.
Bis in die 1990er-Jahre hat man die IP-Adressen innerhalb des Internets in verschiedene Klassen eingeteilt. Die erste Klasse (Class A) begann mit 0.0.0.0 (diese Adresse ist ebenfalls reserviert) und endete mit 127.255.255.255. 127 ist also der letzte Block innerhalb des Klasse-A-Netzes. Diese prominente Stelle könnte der Grund für die Wahl gewesen sein.
Innerhalb dieses Adressbereichs lässt sich ein Localnet aufbauen. Besonders an diesem Adressbereich ist allerdings nicht nur, dass er durch die ICANN reserviert wurde, sondern auch, dass die IP-Adressen darin nicht einmalig vergeben sind, wie es sonst der Fall ist. Wie kann das funktionieren?
Unter IPv6 ist die Adresse ::1 für Loopback reserviert.
Sobald Sie zum Beispiel in Ihrem Browser eine IP-Adresse (oder den entsprechenden Domainnamen eingeben) leitet der Router Ihre Anfrage in das Internet und zum richtigen Server. Deshalb erreichen Sie bei Eingabe von 172.217.0.0 die Startseite von Google. Bei 127.0.0.1 liegt der Fall aber anders, denn Anfragen an diese Adresse werden eben nicht ins Internet weitergeleitet. TCP/IP erkennt am ersten Block (127), dass Sie nicht ins Internet senden möchten, sondern auf sich selbst referieren. Deshalb wird der Loopback ausgelöst.
Umgekehrt lässt das Protokoll auch keine Anfragen von außen ein, die an 127.0.0.1 gerichtet sind. Angreifer könnten so versuchen, sich in das eigene System einzuschleichen. Pakete, die angeblich von reservierten IP-Adressen wie 127.0.0.1 im öffentlichen Internet auftauchen, nennt man auch Martian Packets.
Damit der Rückverweis auf den eigenen Rechner funktioniert, wird ein Loopback-Device erstellt. Dabei handelt es sich um eine virtuelle Schnittstelle. Diese wird vollständig über das Betriebssystem realisiert. Unter Unix-Systemen heißt die Schnittstelle lo oder lo0. Diese lassen sich hier auch über den Befehl ifconfig anzeigen. Ein vergleichbarer Befehl unter Windows lautet ipconfig.
Betrachtet man die Technik unabhängig vom Localhost, kann ein Loopback auch analog realisiert werden: Über Schaltungen in der Kommunikationstechnologie lässt sich so feststellen, ob sowohl der Weg, den das Signal nimmt, als auch der Empfang korrekt sind.
Wofür nutzt man Localhost?
Entwickler verwenden den Localhost beim Testen von Programmen und Webanwendungen. Ebenso können Netzwerkadministratoren die Loopback-Schleife nutzen, um die Netzwerkverbindungen zu testen. Einen weiteren praktischen Nutzen findet der Localhost in der Hosts-Datei, wo man den Loopback zum Sperren von schädlichen Websites nutzen kann.
Für Testzwecke
Localhost wird vor allem im Umfeld von Webservern und beim Programmieren von Anwendungen, die über das Internet kommunizieren müssen, eingesetzt. Bei der Entwicklung ist es wichtig, herauszufinden, ob die Anwendung, so wie sie geplant ist, auch bei Zugriff über das Internet funktioniert. Andere Funktionen sind überhaupt erst ausführbar, wenn die entsprechenden Dateien im (Pseudo-)Internet zu finden sind. Es macht z. B. einen Unterschied, ob Sie ein HTML-Dokument einfach auf Ihrem PC öffnen oder auf einen Server laden und so darauf zugreifen. Aber ein unfertiges Produkt freizugeben, ist eher nicht sinnvoll. Dafür verwenden Entwickler den Loopback. Programmierer können so eine Verbindung simulieren, umgehen aber den Umweg über das Netzwerk: die Verbindung bleibt komplett im eigenen System.
Weiterer Vorteil bei der Verwendung von localhost für Testzwecke: die Geschwindigkeit. Wenn Sie eine Anfrage über das Internet verschicken, dauert dies durchaus über 100 Millisekunden. Wenn Sie einen Ping an localhost senden, dürfte die Übertragung höchstens eine Millisekunde betragen. Mit dieser Technik lässt sich auch herausfinden, ob das Internetprotokoll richtigen implementiert ist. Um dies selbst zu testen, müssen Sie nur die Eingabeaufforderung (Windows) oder das Terminal (Unix/Mac) öffnen und den Ping-Befehl verwenden. Diesen können Sie entweder an die Domain localhost senden oder direkt an die IP-Adresse:
ping localhost
ping 127.0.0.1
Wenn Sie einen eigenen Test-Server auf Ihrem PC einrichten möchten, um diesen per Localhost anzusprechen, müssen Sie eine entsprechende Software installieren. Generell ist es möglich, jeden üblichen Webserver auch auf dem eigenen Rechner laufen zu lassen. Es gibt aber auch spezielle Software, die speziell auf die Verwendung als Localhost ausgerichtet sind. Eine solche ist z. B. XAMPP. Wie Sie das Testsystem korrekt installieren und einrichten, erklären wir im Digital Guide Schritt für Schritt.
- Verschlüsselt Webseiten-Kommunikation
- Verhindert Sicherheits-Warnungen
- Verbessert Google-Platzierung
Zum Sperren von Websites
Localhost spielt auch eine Rolle in der Hosts-Datei. Diese Datei stellt im Prinzip einen Vorgänger des Domain Name Systems (DNS) dar: In ihr lassen sich IP-Adressen den entsprechenden Domains zuordnen. Gibt man die Adresse einer Webseite in den Browser ein, muss die Domain in eine IP-Adresse übersetzt werden. Früher hat man dafür die Hosts-Datei verwendet. Heutzutage benutzt man aber in der Regel das globale DNS. Die Datei ist dennoch in den meisten Betriebssystemen vorhanden. Unter Windows finden Sie diese unter \system32\drivers\etc\hosts; bei macOS und anderen Unix-Systemen unter /etc/hosts.
Wenn Sie selbst noch keine Änderungen an der Datei vorgenommen haben, finden sich dort wahrscheinlich nur zwei Einträge:
127.0.0.1 localhost
::1 localhost
So ist sichergestellt, dass die Namensauflösung für localhost nicht über das Internet laufen muss. Man kann die Datei aber auch verwenden, um bestimmte Websites zu blockieren. Dafür tragen Sie die zu sperrende Website in die Liste ein und weisen der Domain die IP-Adresse 127.0.0.1 zu. Sollten Sie – oder beispielsweise ein schädliches Skript – versuchen, die gesperrte Domain aufzurufen, wird der Browser zunächst in der Hosts-Datei nachsehen und dort einen Eintrag finden. Eine andere Möglichkeit ist, die IP-Adresse 0.0.0.0 zu verwenden.
Der Browser versucht daraufhin, das entsprechende Dokument (die Website) auf dem Server unter 127.0.0.1 aufzurufen. Dieses wird er allerdings mit größter Wahrscheinlichkeit nicht finden, denn die angeforderte Datei befindet sich dort nicht. Wenn Sie allerdings einen eigenen Testserver eingerichtet haben, ist es möglich, dass der Browser eine home.html findet, was aber Ihre eigene Datei ist. Haben Sie keinen Testserver eingerichtet, wird statt der angefragten Website eine Fehlermeldung erscheinen. Diese Technik kann man auch einsetzen, um Werbeeinblendungen systemweit auszuschalten. Damit Sie nicht jeden Eintrag per Hand vornehmen müssen, können Sie im Internet fertige und regelmäßig erweiterte Hosts-Dateien finden.
Die Hosts-Datei hat u. U. einen großen Einfluss auf Ihre Sicherheit beim Surfen im Internet. Zwar ist die Datei gut dafür geeignet, schädliche Websites auszusperren, genauso gut können aber auch Kriminelle darüber schädliche Einträge vornehmen. Deshalb müssen Sie sowohl darauf achten, dass Sie nicht ungeprüft Einträge von anderen Websites übernehmen, als auch darauf, dass keine Malware ohne Ihr Wissen solche Einträge vornimmt.