# Hosts (Datei)

Die Datei „hosts“ (Plural von host, engl. ‚Wirte‘ oder ‚Gastgeber‘ i. S. v. Anbieter, Bereitsteller; i. d. R. kleingeschrieben, es sei denn, das Dateisystem unterstützt dies nicht) ist eine lokale Konfigurationsdatei, um Hostnamen zu IP-Adressen zuzuordnen. Diese System-Datei wurde ursprünglich an Stelle des Domain Name Systems verwendet. Heute wird sie allgemein lediglich zur festen Zuordnung in lokalen (und virtuellen) Rechnernetzen (LAN) verwendet.

## Geschichte

Das Format der hosts-Datei stammt ursprünglich aus der Berkeley Software Distribution, mit der Unix-Version 4.3, das in Verbindung mit dem dort entwickelten Netzwerk-Stack steht. Später wurde es für diverse andere Betriebssysteme übernommen.
Aus jener Zeit stammt auch der Dateiname lmhosts, was die Abkürzung für „Lan-Manager Hosts“ ist und bei Windows-Systemen vom LAN-Manager und später auch von der SMB-Software Samba verwendet wurde.
Vor der Einführung des Domain Name Systems (DNS) wurden Rechnernamen im Internet über diese Hosts-Dateien aufgelöst. Die Verteilung und Aktualisierung dieser Dateien war allerdings ein logistisches Problem. Deshalb werden Hosts-Dateien im Internet sowie in größeren Netzwerken heutzutage selten bis nicht mehr verwendet. Auch Loopback-Adressen benötigen heutzutage keinen Eintrag in der Hosts-Datei.

## Technische Details

Muss ein Hostname in eine IP-Adresse (oder umgekehrt) übersetzt (oder „aufgelöst“) werden, so wird bei Betriebssystemen zuerst versucht, die Namensauflösung lokal anhand der in der Hosts-Datei gespeicherten Zuordnungen durchzuführen, bevor andere Methoden (DNS, WINS usw.) versucht werden. Bei unixartigen Systemen wird die Reihenfolge durch Einträge in der Datei /etc/nsswitch.conf festgelegt.
In den nicht mehr auf DOS basierenden Windows-Versionen (ab Windows NT) wird die Datei meistens nicht mehr benötigt, da deren Aufgabe bei den heute aktuellen Betriebssystem-Versionen im Normalfall der Windows Internet Naming Service übernimmt.

## Pfade unter verschiedenen Betriebssystemen

* Windows
** NT-Linie ab Windows 8
*** %windir%\system32\drivers\etc\hosts
** NT-Linie bis einschließlich Windows 7
*** %SystemRoot%\system32\drivers\etc\hosts ist Systemvorgabe; der Pfad ist in der Registrierungsdatenbank gespeichert und kann angepasst werden: \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DataBasePath
** 95/98/Me
*** %WinDir%\hosts
** Mobile
*** pro Host ein Schlüssel in der Registrierungsdatenbank unter \HKEY_LOCAL_MACHINE\Comm\Tcpip\Hosts
* Unix, FreeBSD, OpenBSD, GNU/Linux
** /etc/hosts
** Android
*** /etc/hosts bzw. /system/etc/hosts (/etc ist eine Verknüpfung mit /system/etc)
** Darwin
*** macOS
**** /etc/hosts bzw. /private/etc/hosts (/etc ist eine Verknüpfung mit /private/etc)
*** iOS
**** /private/etc/hosts
* Plan 9
** /lib/ndb/hosts
* Haiku
** /boot/common/settings/network/hosts
* AmigaOS
** AmiTCP:db/hosts
** DEVS:Internet/hosts (ab Version 4)
* AROS
** ENVARC:AROSTCP/db/hosts
* MorphOS
** ENVARC:sys/net/hosts
* OS/2 und eComStation
** "bootdrive":\mptn\etc\hosts
* Series 60
** 1st und 2nd Edition:
*** C:\system\data\hosts
** 3rd Edition
*** C:\private\10000882\hosts (Zugriff wegen Platform Security nicht ohne weiteres möglich.)
* OpenVMS
** TCPIP$HOST
** TCPIP$HOST.DAT
* TOPS-20
** SYSTEM:HOSTS.TXT

## Dateiformat

Die Datei besteht aus einer tabellarischen Auflistung von IP-Adressen und dazugehöriger Hostnamen. Die Spalten werden durch Leerzeichen oder Tabulatorzeichen getrennt. Eine typische Hosts-Datei sieht so aus:
Die erste Zeile dient der Zuordnung des Localhost im IPv4, die folgenden Zeilen ordnen IPv6-Adressen zu.
Zu beachten ist, dass jede Unterdomain mit aufgeführt werden muss, denn sollte der Eintrag nicht vorhanden sein, wird dieser wieder aufgelöst.

## Verwendungsmöglichkeiten

Hosts-Dateien ermöglichen es, einen DNS-Eintrag fest einer IP-Adresse zuzuordnen, was zum Beispiel die eindeutige Zuordnung und Verwendung in einem Netzwerk mit mehrfach vergebenen gleichen Namen ermöglicht. Ebenso kann Rechnern, die über andere, möglicherweise ungünstige oder fehlende Namen verfügen, ein einfacher und genau identifizierbarer Name gegeben werden. Die Verwendung der Hosts-Datei kann also einen zeitweiligen Ausfall des DNS-Servers kompensieren. Ebenso besteht die Möglichkeit, mithilfe einer Umleitung auf das Loopback-Interface (Hostname localhost, IP-Adresse 127.0.0.1) Adressen zu sperren. Dabei wird die Anfrage nach einem bestimmten Domainnamen, z. B. example.com, so beantwortet, dass sie auf die Adresse des eigenen PCs verweist. Da dort die gesuchte Seite nicht vorhanden ist, erhält man einen Seitenladefehler.
Webentwickler tragen außerdem häufig Domains ein, für die sie Inhalte entwerfen. Somit können die Inhalte des lokalen Webservers getestet werden, als ob sie sich auf einem Webserver mit selbiger Domain im Internet befänden. Die Domain ist jedoch nur lokal erreichbar. Eine Verarbeitung von Skripten und Aufgaben ist so mit den späteren Namen sofort möglich.

### Verwendung als Filter

Manchmal wird die Hosts-Datei dazu verwendet, bekannte Werbeserver zu blockieren, indem sie als Alias für 127.0.0.1 (besser 0.0.0.0) eingetragen werden. Die Besonderheit dieser Methode gegenüber den zu installierenden Werbefiltern ist, dass diese Sperrung systemweit Gültigkeit hat, also nicht nur auf einen Browser beschränkt ist. Darüber hinaus kann man solche Filter auch gegen manche Schadprogramme einsetzen, wenn diese Anweisungen von bereits bekannten Servern abzurufen versuchen.
Die exzessive Verwendung dieser Datei kann jedoch den gesamten Prozess der Namensauflösung verlangsamen, da diese Datei nicht für große Datenmengen optimiert ist. Vorgefertigte Dateien für die Verwendung als Werbefilter oder DNS-Ersatz sind im Internet erhältlich.

### Missbrauch

Besonders Windows-Betriebssysteme sind häufig das Ziel von Viren, die die Hosts-Datei so modifizieren, dass Benutzer auf gefälschte Onlinedienste geleitet werden. Mit diesem Trick kann etwa ein Benutzer auf eine gefälschte Onlinebanking-Seite umgeleitet werden (siehe Pharming und Phishing). Im Zweifelsfall empfiehlt es sich, auf verschlüsselte Verbindungen zu achten sowie das Zertifikat des Verbindungsschlüssels zu überprüfen.
Dies wird meist durch Einträge begleitet, die eine Aktualisierung der Antivirenprogramme unterbinden. Die Server des Herstellers erreichen sie durch dessen Internetadressen, auf diesen Servern werden die aktualisierten Virensignaturen bereitgestellt. Sind Aktualisierungsserver aufgrund ungültiger oder falsch eingetragener IP-Adressen in der Hosts-Datei nicht zu erreichen, verhindern diese Einträge somit die automatische oder manuelle Aktualisierung der Software. Durch aktuell gehaltene und richtig konfigurierte Sicherheitssoftware (Benutzerkonto, aktiver Hintergrundwächter, aktive Firewall) sollten sich solche Manipulationen jedoch vorher verhindern lassen.
Eine weitere (hier bewusst erwünschte) Methode der Manipulation wurde speziell von Erstellern von Software-Schwarzkopien entwickelt. Da viele Arten von Software online aktiviert werden müssen, wird in der Hostsdatei ein Eintrag mit dem Namen des Servers des legalen Softwareanbieters angelegt, mit dem zur Aktivierung Kontakt aufgenommen wird. Dieser wird nun lediglich mit der IP-Adresse eines Servers versehen, den die Anbieter der Schwarzkopien unterhalten. Auf diesem liegen dann die illegal beschafften Aktivierungsschlüssel. Die Manipulation der Datei geschieht mit einem mitgelieferten Programm.