Nehmen wir an, Sie haben bereits ein neues System auf einem Webserver aufgesetzt, können das aber nur über die IP-Adresse wie beispielsweise 212.64.64.14 erreichen. Denn Sie haben noch nicht den Eintrag in Ihren DNS geändert. Wäre doch schön, wenn man das neue System auch über den (zukünftigen) Namen wie https://meinedomain.at erreichen kann.Normalerweise kommt ja die Namensauflösung von einem DNS, Domain-Name-Server, aber was ist, wenn der noch auf die alte, offizielle Eintragung zeigt oder das neue System noch nicht registriert ist.

hosts: Die lokale Datei am Computer: stärker als jeder DNS- oder Router-Eintrag

Dann kann man eine lokale Datei auf seinem Computer nutzen, die ebenfalls eine Tabelle mit URL und IP enthält.

Was ist die hosts-Datei

Die hosts Datei ist eigentlich ein Relikt aus der Vergangenheit. Dass sie wirklich alt ist, sieht man schon daran, daß sie eine der wenigen Dateien ist, die keine Extension besitzen. Sie stammt noch doch aus der Frühzeit der Datenkommunikation aus den 1970er Jahren. Diese Datei darf auch nach dem Bearbeiten nicht unbenannt werden: zB würde eine hosts.txt Datei vom System ignoriert werden. Einträge in der lokal gespeicherten hosts Datein wirken am stärksten: Die in dort eingertragenen Paarung Servername & IP haben die höchste Priorität, sie gelten immer. Das wirkt sich zB negativ aus, wenn dann einmal der Testserver offiziell bei den DNS eingetragen ist: Die hosts Datei führt einen dann zu einem dann veralteten Eintrag und man muss diese Zeile wieder heurauslöschen – oder am Zeilenbeginn ein # setzen.

Was steht standardmäßig in der hosts-Datei

# Copyright (c) 1993-2006 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host
# localhost name resolution is handle within DNS itself.
127.0.0.1 localhost
# ::1 localhost

Oben sehen wir den Inhalt der hosts-Datei bei Windows 7 und neuern Microsoft Windows Betriebssystemen.

Wenn ich eine Anweisungen „scharf“ machen will, dann muß ich das Kommentarzeichen, die Raute # entfernen.

127.0.0.1 localhost

Übrigens: Die hosts Datei kann aber auch einfach nur komplett leer sein.

Wo findet man die hosts Datei auf seinem System

  • Microsoft Windows:
    • %windir%\system32\drivers\etc
      C:\WINDOWS\System32\drivers\etc\hosts
    • Einfach diesen Pfad unten links bei der Lupe eingeben und dann das Verzeichnis anzeigen lassen
  • Apple Mac OSX:
    • /etc/hosts bzw. /private/etc/hosts (/etc ist eine Verknüpfung mit /private/etc)
  • Apple iOS(iPhone,iPad)
    • /private/etc/hosts
  • Google Android
    • /etc/hosts bzw. /private/etc/hosts (/etc ist eine Verknüpfung mit /private/etc)
  • Unix, FreeBSD, OpenBSD, GNU/Linux
    • /etc/hosts

Womit bearbeite ich diese hosts-Datei: Variante 1 Editoren

Variante 1 mit einem professionellen Editor. Am verbreitesten ist das gratis erhältliche Microsoft Visual Studio Code: Das unterstützt eine Vielzahl von Sprachen und ist eine wirklich moderne Lösung. Einige Empfehlungen:

  • Microsoft Windows (das Programm als Administrator öffnen):
    • Im Editor von Windows:
      • Suchen Sie im Startmenü unter „Windows-Zubehör“ den Eintrag „Editor“. Mit einem Klick mit der rechten Maustaste können Sie im Submenü „Mehr“ dieses Programm „Als Administrator ausführen“.
        Gehen Sie im Editor unter „Datei“ auf den Menüpunkt „Öffnen“.
        Wenn Sie keine Datei sehen, dann wählen Sie rechts unten beim Dateityp „Alle Dateien *.*“
        Öffnen Sie die „hosts“-Datei im Windows Explorer über den Pfad C:\Windows\System32\drivers\etc\hosts.
        Sie können die hosts-Datei nun ändern.
        Achten Sie beim Speichern darauf, nicht die Dateiextension .txt ausgewählt zu haben, sondern wählen Sie wieder Alle Dateien *.*
    • Notepad++ (frei): https://notepad-plus-plus.org/downloads/
    • Microsoft Visual Studio Code (frei): https://code.visualstudio.com/
    • Atom (frei): https://atom.io/
    • Sublime Test 3 (kostenpflichtig): https://www.sublimetext.com/
  • Apple Mac OS-X:
  • Linux:

Womit bearbeite ich diese hosts-Datei: Variante 2 im Terminal

Eleganter ist auch die Bearbeitung der hosts-Datei direkt in der Terminal Software, die lokal auf Deinen Computer zugreift.

  • Microsoft Windows
    • Geben Sie bei der „Eingabeaufforderung“ (der Lupe links unten) ein: cmd
      Nun erscheint im Fenster oberhalb „Eingabeauffoederung / App“
      Dieses Eingabeauffoderung Icon mit der rechten Maustaste anklicken und „Als Administrator ausführen“ wählen
      Im nächsten Fenster mit „Ja“ bestätigen
      In der Eingabeaufforderung hinter dem Prompt: eingeben: cd C:\WINDOWS\System32\drivers\etc\
      Weiter: notepad hosts
      Die Änderungen vornehmen
      Im Notepad unter „Speichern“ gehen. Nicht vergessen beim Dateiformat von .txt auf „Alle Dateien *.*“ wechseln.
  • Apple Mac OS-X:
    • Öffne das Tool Terminal (Programme / Dienstprogramme / Terminal)
      Gib den Befehl „sudo nano /etc/hosts“ ein (ohne Anführungszeichen).
      Gib dein Kennwort vom Mac-Benutzer ein (es werden keine Zeichen angezeigt).
      Führe deine gewünschten Änderungen durch.
      Drücke Ctrl+X , dann Y und ENTER.
  • Linux:
    • sollte wohl genauso gehen wie Apple Mac OS-X

Was schreibe ich nun in die hosts-Datei

Fall 1: Ich entwickle lokal auf meinem PC mit XAMP o.ä. für einen Kunden

Wenn Sie mit Windows-Apache-MySQL-PHP (WAMP) bzw. Linux-Apache-MaSQL-PHP (Linux) oder mit Macintosh-Apache-MySQL-PHP (Apple Mac OSx) bzw. XAMP (irgendwas-Apache-MySQL-PHP) lokal entwickeln, wollen Sie vielleicht die von Ihnen vorbereitete Website auch lokal unter deren offiziellen Namen ansprechen können.

In diesem Fall ergänze ich die hosts-Datei zB mit folgenden Zeilen (ohne Raute am Zeilenanfang, damit es wirklich „wirkt“:

127.0.0.1 meinedomaine.at
127.0.0.1 www.meinedomaine.at

Wenn Sie dann auf das entfernte System zugreifen wollen, um es zB live am Zielserver zu testen, müssen Sie diese beiden Zeilen mit der # (Raute) auskommentieren und die Zeilen unter Fall 2 setzen.

Noch eine Bemerkung: Wenn ich diese Websites lokal per https:// anspreche, habe ich sicher Probleme mit den Zertifikaten, da muss ich dann im Browser trotzdem „Ja, wirklich“ sagen, dass ich diese Websites ohne Zertifikat ansprechen will.

Fall 2: Eine Website auf dem veralteten / zukunftigen Server ansprechen

In diesem Fall ergänze ich die hosts-Datei zB mit folgenden Zeilen (ohne Raute am Zeilenanfang, damit es wirklich „wirkt“):

82.165.166.232 meinedomaine.at
82.165.166.232 www.meinedomaine.at

Auch in diesem Fall wird es sicher Probleme mit Zertifikaten geben und müssen Sie alle Warnhinweise Ihres Browsers in den Wind schlagen.

Auf welche lokal ausgeführten Programme wirken diese hosts-Einträge

Kurz gesagt: Auf alle!

Egal, ob Sie diese Adressen mit dem Browser, einem sFTP-Client, Dreamweaver oder anderen Entwicklungsumgebungen ansprechen – was in der hosts-Datei steht, ist gültig.

Wenn es nicht funktioniert und Sie die Domaine nicht erreichen

Tipp 1: Schauen Sie manchmal in Ihrer hosts-Datei nach, ob da nicht auch noch Schrott übriggeblieben ist, der zu löschen – oder zumindest mit der Raute/demm Kanalgitter (#) auszukommentieren ist.

Tipp 2: Überprüfen Sie, ob ihr Editor der hosts-Datei nicht doch beim Speichern eine Dateiextension wie .txt hinzugefügt hat. Das funktioniert dann nicht. Die Datei muss hosts heißen – also bitte umbenennen. Alle anderen Abwandlungen, wie hosts.bak oder hosts1 oder hosts.txt etc. werden ignoriert.