Der localhost 127.0.0.1 - Arbeitsweise und Zweck übersichtlich dargestellt

Autor:   |  21.08.2019


Was ist der Localhost?Bei dem localhost oder der IPv4 Adresse 127.0.0.1 beziehungsweise der IPv6 Adresse ::1 handelt es sich um einen als Standard definierten Domainnamen, der auf den eigenen Computer oder Server verweist. Ohne weitere Angabe eines Ports ruft diese URL den lokalen Webserver auf und zeigt die Hauptseite in dem Root-Verzeichnis - bei der Neuinstallation eines Webservers fast immer eine Information mit der Aussage "It works" und eventuell weiteren Details über die Struktur des verwendeten Servers. Erscheint bei dem Aufruf von localhost, 127.0.0.1 oder bei der Verwendung von IPv6 ::1 der HTTP Error 500, deutet dies auf eine grundlegende Fehlkonfiguration des Webservers hin.

127.0.0.1 und localhost verwenden eine virtuelle Schnittstelle

Technisch werden Verbindungen über IPv4 und IPv6 mit localhost als Adresse 127.0.0.1 über ein sogenanntes Loopback Device geleitet. Dabei handelt es sich um eine Schleifenschaltung, bei der Ein- und Ausgabe identisch sind und Informationen an die fest definierte Adresse 127.0.0.1 bidirektional weitergegeben werden. Diese virtuelle Schnittstelle reagiert somit lediglich auf jede lokale IPv4 und IPv6 Adresse in dem Adressbereich 127.0.0.1 /8 und IPv6 ::1 /128. Sie leitet anschließend eine Verbindung von 127.0.0.1 bis 127.255.255.255 beziehungsweise dem entsprechendem IPv6 Raum oder der Domain localhost auf sich selbst um und bearbeitet diese, als stamme sie von einem externen Server, vServer oder Client. Dieses Verfahren mag auf den ersten Blick paradox und umständlich erscheinen, gehört jedoch zu den Standards in der IT-Technologie und dient unterschiedlichen Zwecken. Die Umsetzung bleibt dabei stets identisch - gleichgültig, ob es sich um einen vServer, einen Server, einen Desktop PC oder ein Embedded Device handelt.

Für das Betriebssystem besteht somit kein Unterschied zwischen der Kommunikation über loopback, 127.0.0.1 und der IPv6 Variante oder der mit einem externen Server. In den meisten Fällen behandelt es das loopback Device, als ob es um ein physisches Gerät handeln würde und ordnet diesem zum Beispiel bei Linux oder Unix mit lo oder lo0 ebenfalls eine feste Bezeichnung als Hardware zu. Dabei ist zu berücksichtigen, dass das loopback Device vollständig gegenüber anderen Schnittstellen und Netzwerken isoliert ist - es ist also nicht möglich, eine Verbindung über 127.0.0.1 nach außen zu reichen, ohne die IPv4 oder IPv6 Adresse entsprechend zu verändern. Umgekehrt kann auch keine Anfrage von außen an einen fremden localhost oder die Adresse 127.0.0.1 gesendet werden - nicht einmal innerhalb einer geschlossenen und einheitlichen Umgebung wie von einem vServer an einen anderen vServer.

Die Aufgaben von localhost und loopback Verbindungen

Aus Sicht der Effizienz einer Kommunikation ist die Verwendung eines localhost möglicherweise ein Umweg, auf der anderen Seite schafft die Schnittstelle 127.0.0.1 oder IPv6 ::1 eine Flexibilität, die anders nur schwer zu realisieren wäre. Zu den praktischen Anwendungen gehören zahlreiche Szenarien, die gewöhnliche Nutzer ebenso wie Programmierer und Entwickler betreffen, darunter:

  • Der Aufbau von Testumgebungen ohne externe Server
  • Bereitstellung von lokalen Webinterfaces für Information oder Konfiguration unter localhost
  • Feste Auflösung von Domain localhost und IPv4 Adresse 127.0.0.1
  • Bereitstellung eines lokalen IPv4 und IPv6 Netzwerks ohne externe Anbindung
  • Interne Kommunikation zum Beispiel zwischen Diensten in einem vServer
  • Universelle Schnittstelle mit dem plattformübergreifenden TCP/IP Protokoll

TCP/IP als universelles Protokoll für das Netzwerk

Eine der Gründe für die Verwendung von localhost als lokale Schnittstelle sind die vielseitigen Eigenschaften Transmission Control Protocol (TCP) für die Kommunikation innerhalb von Netzwerken und für den Austausch von Informationen. Es ermöglicht es, dass Dienste zwischen verschiedenen Instanzen ebenso wie innerhalb eines Betriebssystems oder in virtualisierten Umgebungen wie einem vServer Informationen sicher und verlustfrei austauschen. Seinen Erfolg verdankt TCP seinen Eigenschaften als verbindungsorientiertes, sicheres und zuverlässiges Protokoll, das effizient arbeitet und sich universell einsetzen lässt. So erlaubt es beispielsweise, dass Anwendungen dynamische Webseiten erstellen und diese über localhost dem Nutzer zur Verfügung stellen. Sie profitieren dabei unter anderem davon, dass die lokale IPv4 Adresse 127.0.0.1 oder ihre Entsprechung in IPv6 aus Desktop PC, vServer oder Server beliebig mit unterschiedlichen Ports kombiniert werden können.

Zahlreiche Anwendungen nutzen localhost als Webinterface

Beispiele für die Kombination aus IPv6, 127.0.0.1 oder localhost mit spezifischen Ports sind die unter Linux als Standard verwendete Druckverwaltung CUPS (localhost:631), für die Administration von vServer und Server beliebte Werkzeuge wie Webmin (Port 10000), DirectAdmin (Port 2222) oder Plesk (Port 8443) sowie das für die Verwaltung von Datenbanken in MySQL oder MariaDB populäre Interfaces phpMyAdmin (Port 3306). Der Aufruf der Weboberflächen entsprechender Anwendungen erfolgt dabei stets über die Kombination aus localhost oder 127.0.0.1 mit einem Doppelpunkt und der Portnummer, zum Beispiel localhost:10000 oder 127.0.0.1:2222. Zu beachten ist dabei, dass die IPv6 Version ::1:631 nicht korrekt aufgelöst wird, da der Doppelpunkt selbst innerhalb der IPv6 Adresse bereits Verwendung findet. Aus diesem Grund ist eine Einbettung in eckige Klammern notwendig - der Aufruf unter IPv6 lautet dementsprechend [::1]:Port.

HTTP Error 500 und seine Bedeutung für localhost Verbindungen

Der HTTP Error 500 weist auf einen allgemeinen Serverfehler hin, der den Aufbau einer Verbindung über TCP verhindert. Tritt er in Verbindung mit localhost auf, bedeutet dies eine fehlerhafte Konfiguration des Webservers. Einige Anwendungen - insbesondere solche zur Administration von Systemen wie vServer und Server - verwenden eigene Webserver, um permanent erreichbar zu bleiben. Diese haben unter Umständen Probleme mit der Auflösung von IPv6 Adressen, weshalb generell die Verwendung der Domain localhost oder des älteren Standards IPv4 127.0.0.1 statt IPv6 empfohlen wird, Gibt ein Browser anschließend einen HTTP Error 500 aus, sollten relevante Einstellungen des Servers auf dessen Ursache überprüft werden. Eine weitere und ebenfalls von TCP unabhängige Ursache des HTTP Error 500 ist der PHP Interpreter, der unter Umständen falsche Parameter verwendet. Bei einem vServer kommen ebenfalls temporär nicht verfügbare Ressourcen als Auslöser für den HTTP Error 500 in Betracht, falls ein Prozess beispielsweise kurzfristig nicht ausreichend Speicher reservieren kann.

Foto: FreePhotosART pixabay.com