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 *.*
- 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“.
- 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/
- Im Editor von Windows:
- Apple Mac OS-X:
- Microsoft Visual Studio Code (frei): https://code.visualstudio.com/
- Atom (frei): https://atom.io/
- Sublime Test 3 (kostenpflichtig): https://www.sublimetext.com/
- Linux:
- jedem Editor im Betriebssystem (vi, etc.)
- Sublime Test 3 (kostenpflichtig): https://www.sublimetext.com/
- Atom (frei): https://atom.io/
- Microsoft Visual Studio Code (frei): https://code.visualstudio.com/
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.
- Geben Sie bei der „Eingabeaufforderung“ (der Lupe links unten) ein:
- 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.
- Öffne das Tool Terminal (Programme / Dienstprogramme / Terminal)
- 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.
Danke für den gut recherchierten Artikel! Als Relikt würde ich es nicht betrachten… beim Website relaunch vorhandener Domains finde ich es immernoch sehr praktisch…