Sparen Sie 15% bei allen Hosting-Diensten

Teste deine Fähigkeiten und erhalte Rabatt auf jeden Hosting-Plan

Benutze den Code: Skills Anfangen
Abschnitte
DNS Linux

Beherrschung der Linux Hosts-Datei: Der vollständige Leitfaden zur lokalen DNS-Kontrolle

Egal ob Sie ein Entwickler sind, der eine neue Anwendung testet, ein Sysadmin, der DNS-Propagation behebt, oder einfach jemand, der ablenkende Websites blockieren möchte, die /etc/hosts Datei ist eines der leistungsstärksten und am wenigsten genutzten Tools auf jedem Linux-System. Dieser Leitfaden bietet eine tiefe, praktische Anleitung zu allem, was Sie wissen müssen — vom Verständnis, was die hosts-Datei ist, bis zum sicheren Bearbeiten auf Ihrer VPS Hosting Umgebung.

1. Was ist die Hosts-Datei?

Die Hosts-Datei ist eine einfache Textdatei des Systems, die menschenlesbare Hostnamen — wie www.example.com — ihren entsprechenden IP-Adressen zuordnet. Sie funktioniert als lokaler, statischer DNS-Resolver und wird vom Betriebssystem entscheidenderweise *vor* jeder externen DNS-Abfrage konsultiert.

Das bedeutet, dass Einträge in Ihrer Hosts-Datei absolute Priorität vor DNS-Einträgen haben, die von externen Nameservern zurückgegeben werden. Diese einzelne Eigenschaft macht sie zu einem unglaublich vielseitigen Werkzeug für:

  • Lokale Entwicklungsumgebungen — Testen Sie eine Website unter einer realistischen Domain, ohne Live-DNS-Einträge zu ändern.
  • DNS-Fehlerbehebung — Erzwingen Sie vorübergehend, dass eine Domain zu einer bestimmten IP aufgelöst wird, um Serverkonfigurationen zu testen.
  • Website-Blockierung — Leiten Sie unerwünschte Domains zu einer nicht routbaren Adresse um und blockieren Sie so den Zugriff.
  • Staging und Pre-Launch-Tests — Zeigen Sie eine neue Servereinrichtung in der Vorschau an, bevor Sie DNS global umschalten.
  • Netzwerksicherheit — Blockieren Sie bekannte bösartige Domains auf OS-Ebene.

> Technischer Hinweis: Unter Linux wird die Auflösungsreihenfolge durch die /etc/nsswitch.conf Datei gesteuert. Die Standardkonfiguration platziert typischerweise files (d. h. /etc/hosts) vor dns, um sicherzustellen, dass lokale Einträge immer zuerst überprüft werden.

2. Wo befindet sich die Hosts-Datei unter Linux?

Auf allen großen Linux-Distributionen — einschließlich Ubuntu, Debian, CentOS, Rocky Linux, AlmaLinux und Arch Linux — befindet sich die Hosts-Datei unter:

/etc/hosts

Dieser Pfad ist konsistent über alle Distributionen hinweg, was die Arbeit damit unabhängig von Ihrer Umgebung erleichtert. Die Datei gehört root und erfordert erhöhte Berechtigungen zum Bearbeiten.

Standardinhalte von /etc/hosts

Ein neu bereitgestellter Linux-Server — wie einer, der auf AlexHost VPS Hosting läuft — enthält normalerweise Standardeinträge ähnlich wie die folgenden:

127.0.0.1       localhost
127.0.1.1       your-hostname.example.com your-hostname

# The following lines are desirable for IPv6 capable hosts
::1             localhost ip6-localhost ip6-loopback
ff02::1         ip6-allnodes
ff02::2         ip6-allrouters

Diese Einträge stellen sicher, dass:

    localhost immer zur Loopback-Adresse 127.0.0.1 (IPv4) und ::1 (IPv6) aufgelöst wird.
    Der Hostname des Servers lokal aufgelöst wird, ohne dass eine externe DNS-Abfrage erforderlich ist.
    
    Löschen Sie diese Standardeinträge nicht, es sei denn, Sie haben einen spezifischen und gut verstandenen Grund dafür. Das Entfernen kann zu unerwartetem Verhalten bei Systemdiensten, E-Mail-Zustellung und Anwendungs-Frameworks führen.
    3. Struktur der Hosts-Datei verstehen
    Die Hosts-Datei folgt einem einfachen, konsistenten Format. Jede nicht-leere, nicht-Kommentar-Zeile stellt eine einzelne Zuordnung dar und hält sich an diese Syntax:
    IP_address    hostname    [alias1]    [alias2]    ...
    
    
    
    
    Feld
    Beschreibung
    
    
    
    
    IP_address
    Die IPv4- oder IPv6-Adresse, in die der Hostname aufgelöst werden soll
    
    
    hostname
    Der primäre vollständig qualifizierte Domänenname (FQDN) oder kurze Hostname
    
    
    alias (optional)
    Ein oder mehrere zusätzliche Namen, die in dieselbe IP aufgelöst werden sollen
    
    
    
    
    Wichtige Formatierungsregeln
    
    Leerzeichen: Felder werden durch Leerzeichen oder Tabulatoren getrennt. Mehrere Leerzeichen sind zulässig.
    Kommentare: Jeder Text nach einem #-Zeichen in einer Zeile wird als Kommentar behandelt und vom System ignoriert.
    Groß-/Kleinschreibung: Hostnamen sind in der Praxis nicht case-sensitive, aber Kleinschreibung ist die Konvention.
    Eine IP pro Zeile: Jede Zeile beginnt mit genau einer IP-Adresse, gefolgt von einem oder mehreren Hostnamen.
    
    Praktische Beispiele
    Eine einzelne Domäne auf localhost abbilden:
    127.0.0.1    example.com
    Mehrere Hostnamen auf dieselbe IP in einer Zeile abbilden:
    127.0.0.1    example.com    www.example.com    staging.example.com
    Eine Domäne blockieren, indem sie auf eine nicht-routbare Adresse verweist:
    0.0.0.0    ads.tracker.com
    Eine Domäne zwingen, sich zu einer bestimmten Remote-Server-IP aufzulösen:
    203.0.113.42    mywebsite.com    www.mywebsite.com
    Inline-Kommentare zur Dokumentation hinzufügen:
    # Local development environment - Project Alpha
    127.0.0.1    alpha.local    api.alpha.local
    
    # Blocked domains - updated 2025-01-15
    0.0.0.0    malicious-site.com
    4. Bearbeitung der Hosts-Datei unter Linux (Schritt für Schritt)
    Da /etc/hosts eine Systemkonfigurationsdatei ist, benötigen Sie Root- oder sudo-Berechtigungen, um sie zu ändern. Nachfolgend finden Sie einen vollständigen, produktionssicheren Arbeitsablauf.
    Schritt 1: Erstellen Sie eine Sicherung vor der Bearbeitung
    Dies ist eine unverzichtbare Best Practice. Sichern Sie die Datei immer, bevor Sie Änderungen vornehmen:
    sudo cp /etc/hosts /etc/hosts.bak
    Sie können überprüfen, ob die Sicherung erstellt wurde:
    ls -lh /etc/hosts*
    Falls etwas schiefgeht, stellen Sie sie sofort wieder her mit:
    sudo cp /etc/hosts.bak /etc/hosts
    Schritt 2: Öffnen Sie die Hosts-Datei mit einem Texteditor
    Verwendung von nano (empfohlen für Anfänger und schnelle Bearbeitungen):
    sudo nano /etc/hosts
    nano ist benutzerfreundlich, zeigt Tastaturkürzel am unteren Bildschirmrand an und ist auf praktisch jeder Linux-Distribution standardmäßig verfügbar.
    Verwendung von vim (bevorzugt von erfahrenen Administratoren):
    sudo vim /etc/hosts
    Verwendung von vi (verfügbar bei minimalen Installationen):
    sudo vi /etc/hosts
    Schritt 3: Einträge hinzufügen, ändern oder entfernen
    Sobald die Datei geöffnet ist, navigieren Sie zur entsprechenden Stelle und nehmen Sie Ihre Änderungen vor. Hier sind die häufigsten Operationen:
    Neue Zuordnung hinzufügen (am Ende der Datei anfügen):
    127.0.0.1    myproject.local    www.myproject.local
    Website blockieren:
    0.0.0.0    facebook.com    www.facebook.com
    DNS für eine Domain überschreiben (z. B. um einen neuen Server zu testen):
    198.51.100.25    mywebsite.com    www.mywebsite.com
    Schritt 4: Speichern und Beenden des Editors
    In nano:
    
    Drücken Sie CTRL + O, um die Datei zu schreiben (zu speichern).
    Drücken Sie Enter, um den Dateinamen zu bestätigen.
    Drücken Sie CTRL + X, um zu beenden.
    
    In vim oder vi:
    
    Drücken Sie Esc, um sicherzustellen, dass Sie sich im Befehlsmodus befinden.
    Geben Sie :wq ein und drücken Sie Enter, um zu schreiben und zu beenden.
    Um zu beenden, ohne zu speichern, geben Sie :q! ein und drücken Sie Enter.
    
    Schritt 5: Überprüfen Sie die Syntax Ihrer Änderungen
    Überprüfen Sie visuell, bevor Sie testen, ob Ihre Einträge korrekt aussehen:
    cat /etc/hosts
    Sie können auch grep verwenden, um schnell einen bestimmten Eintrag zu finden:
    grep "myproject.local" /etc/hosts
    Schritt 6: Testen Sie die neuen Zuordnungen
    Verwenden Sie ping, um zu überprüfen, dass der Hostname zur erwarteten IP-Adresse aufgelöst wird:
    ping -c 4 myproject.local
    Bei einer blockierten Domain (zugeordnet zu 0.0.0.0 oder 127.0.0.1) sollte der Ping fehlschlagen oder sofort zurückkehren:
    ping -c 2 facebook.com
    Sie können auch getent für eine direktere Hosts-Datei-Abfrage verwenden:
    getent hosts myproject.local
    Dieser Befehl fragt den Namensauflösungsstapel des Systems ab (einschließlich /etc/hosts) und gibt die aufgelöste IP zurück, was ihn zuverlässiger macht als ping für Überprüfungszwecke.
    5. Häufige Anwendungsfälle für die Hosts-Datei
    5.1. Lokale Webentwicklung
    Dies ist wohl der häufigste Anwendungsfall unter Entwicklern. Anstatt auf Ihr lokales Projekt über http://localhost:3000 oder http://127.0.0.1:8080 zuzugreifen, können Sie einen aussagekräftigen, produktionsähnlichen Domainnamen zuweisen.
    Beispielkonfiguration:
    Fügen Sie zu /etc/hosts hinzu:
    127.0.0.1    myproject.local    api.myproject.local    admin.myproject.local
    Nach dem Speichern navigieren Sie zu http://myproject.local in Ihrem Browser. Ihre Anfrage wird lokal aufgelöst, ohne jemals einen externen DNS-Server zu berühren.
    Dieser Ansatz ist besonders wertvoll, wenn:
    
    Ihre Anwendung Virtual Hosting verwendet und einen bestimmten Host Header erfordert.
    Sie SSL-Zertifikate lokal testen (mit selbstsigniertem Zertifikat, das einem richtigen Domainnamen zugeordnet ist).
    Sie eine Multi-Subdomain-Architektur simulieren müssen (z. B. api., admin., cdn.).
    
    Wenn Sie mehrere Projekte auf einem VPS mit cPanel ausführen, kann die Hosts-Datei Ihnen auch bei der Prüfung von Domänenkonfigurationen helfen, bevor die DNS-Propagation abgeschlossen ist.
    5.2. Blockierung unerwünschter Websites
    Die Hosts-Datei ist ein leichter Content-Blocker ohne Abhängigkeiten. Durch Umleitung einer Domain zu 0.0.0.0 (bevorzugt gegenüber 127.0.0.1, da es schneller fehlschlägt ohne Verbindungsversuch), können Sie den Zugriff auf Betriebssystemebene blockieren – was alle Browser und Anwendungen gleichzeitig betrifft.
    Blockieren Sie Social-Media-Ablenkungen:
    0.0.0.0    facebook.com    www.facebook.com
    0.0.0.0    twitter.com    www.twitter.com
    0.0.0.0    reddit.com    www.reddit.com
    Blockieren Sie bekannte Ad-Serving- oder Tracking-Domains:
    0.0.0.0    doubleclick.net
    0.0.0.0    ads.google.com
    0.0.0.0    tracking.example-analytics.com
    > Profi-Tipp: Von der Community gepflegte Blocklisten (wie die vom StevenBlack-Hosts-Projekt) kompilieren Zehntausende von Ad-, Tracking- und Malware-Domains in ein einzelnes Hosts-Dateiformat, das Sie in Ihre /etc/hosts zusammenführen können.
    5.3. Pre-Launch-Server-Tests und DNS-Umstellung
    Bei der Migration einer Website auf einen neuen Server – beispielsweise von Shared Web Hosting zu einem Dedicated Server – kann die DNS-Propagation überall von Minuten bis zu 48 Stunden dauern. Die Hosts-Datei ermöglicht es Ihnen, den neuen Server sofort in der Vorschau anzuzeigen, nur von Ihrem lokalen Computer aus, ohne andere Benutzer zu beeinflussen.
    Szenario: Sie migrieren mywebsite.com zu einem neuen Server mit IP 203.0.113.42.
    Fügen Sie zu Ihrer lokalen /etc/hosts hinzu:
    203.0.113.42    mywebsite.com    www.mywebsite.com
    Wenn Sie nun mywebsite.com in Ihrem Browser besuchen, sehen Sie den Inhalt des neuen Servers. Andere Besucher weltweit sehen weiterhin den alten Server, bis DNS propagiert ist. Nachdem Sie bestätigt haben, dass alles korrekt funktioniert, entfernen Sie den Eintrag und lassen DNS übernehmen.
    Diese Technik ist wertvoll für:
    
    Überprüfung der Webserver-Konfiguration vor dem Go-Live.
    Testen von SSL-Zertifikaten auf dem neuen Server.
    Bestätigung des E-Mail-Routings und des Anwendungsverhaltens nach der Migration.
    
    5.4. Umgehung von DNS-Auflösungsfehlern
    Wenn ein DNS-Server vorübergehend nicht verfügbar ist oder falsche Ergebnisse zurückgibt, können Sie die Hosts-Datei als Notfall-Override verwenden, um die Konnektivität zu kritischen Diensten wiederherzustellen.
    Beispiel:
    # Emergency override - DNS server outage 2025-01-15
    198.51.100.10    internal-api.company.com
    198.51.100.11    database.company.com
    Denken Sie daran, diese Einträge zu entfernen, sobald das zugrunde liegende DNS-Problem behoben ist, um zu vermeiden, dass veraltete Zuordnungen in Zukunft Verwirrung verursachen.
    5.5. Multi-Server-Entwicklungsumgebungen
    In komplexen Entwicklungssetups mit mehreren virtuellen Maschinen oder Containern kann die Hosts-Datei benutzerfreundliche Namen jedem Dienst zuordnen:
    192.168.1.10    db.local         # Database server
    192.168.1.11    cache.local      # Redis/Memcached
    192.168.1.12    queue.local      # Message broker
    192.168.1.13    search.local     # Elasticsearch
    Dies eliminiert die Notwendigkeit, sich IP-Adressen zu merken, und macht Konfigurationsdateien lesbarer und portabler.
    6. DNS-Cache nach Änderungen leeren
    Auf den meisten modernen Linux-Systemen werden Änderungen an /etc/hosts sofort für neue Verbindungen wirksam. Wenn Ihr System oder Ihre Anwendungen jedoch DNS-Antworten zwischenspeichern, müssen Sie möglicherweise diesen Cache leeren, um sicherzustellen, dass die neuen Zuordnungen sofort verwendet werden.
    Für Systeme, die systemd-resolved verwenden (Ubuntu 18.04+, Debian 10+, die meisten modernen Distributionen):
    sudo systemctl restart systemd-resolved
    Oder, um den Cache ohne vollständigen Neustart zu leeren:
    sudo resolvectl flush-caches
    Überprüfen Sie, ob der Cache geleert wurde:
    sudo resolvectl statistics
    Für Systeme, die nscd verwenden (Name Service Cache Daemon):
    sudo systemctl restart nscd
    Für Systeme, die NetworkManager verwenden:
    sudo systemctl restart NetworkManager
    Für Systeme, die dnsmasq verwenden:
    sudo systemctl restart dnsmasq
    Überprüfung, welcher DNS-Resolver Ihr System verwendet
    systemctl list-units --type=service | grep -E "resolved|nscd|dnsmasq|NetworkManager"
    > Browser-Caches: Beachten Sie, dass Webbrowser ihren eigenen internen DNS-Cache unterhalten, unabhängig vom Betriebssystem. Nach der Änderung von /etc/hosts müssen Sie möglicherweise auch den DNS-Cache Ihres Browsers leeren. In Chrome/Chromium navigieren Sie zu chrome://net-internals/#dns und klicken Sie auf Host-Cache leeren.
    7. Best Practices und Sicherheitsaspekte
    ✅ Immer vor dem Bearbeiten sichern
    sudo cp /etc/hosts /etc/hosts.bak.$(date +%Y%m%d_%H%M%S)
    Die Verwendung eines Zeitstempels im Sicherungsdateinamen ermöglicht es Ihnen, mehrere Versionen zu verfolgen.
    ✅ Verwenden Sie Kommentare, um Ihre Änderungen zu dokumentieren
    # Added 2025-01-15 by admin@example.com - staging server test
    203.0.113.42    staging.mywebsite.com
    Dies ist besonders wichtig in Teamumgebungen, in denen mehrere Personen auf den Server zugreifen können.
    ✅ Entfernen Sie temporäre Einträge umgehend
    Einträge, die zum Testen oder für Notfallüberschreibungen hinzugefügt wurden, sollten entfernt werden, sobald sie nicht mehr benötigt werden. Veraltete Einträge können Monate später zu schwer zu diagnostizierenden Konnektivitätsproblemen führen.
    ✅ Validieren Sie Ihre Syntax
    Ein fehlerhafter Eintrag in der Hosts-Datei führt nicht zu einem Systemabsturz, schlägt aber stillschweigend fehl. Überprüfen Sie Ihre Einträge immer mit:
    getent hosts <hostname>
    ⚠️ Sicherheitswarnung: Hosts-Datei-Hijacking
    Bösartige Software modifiziert manchmal /etc/hosts, um legitime Domänen (wie Banking-Websites oder Update-Server) auf von Angreifern kontrollierte IPs umzuleiten. Dies ist ein bekannter Angriffsvektor namens Hosts-Datei-Hijacking.
    Schützen Sie sich davor durch:
    
    Festlegen restriktiver Dateiberechtigungen: sudo chmod 644 /etc/hosts
  • Überwachen Sie die Datei auf unbefugte Änderungen mit Tools wie auditd oder AIDE.
  • Überprüfen Sie regelmäßig den Dateiinhalt: cat /etc/hosts
  • ⚠️ Die Hosts-Datei ist kein Ersatz für ordnungsgemäße DNS

    In Produktionsumgebungen sollte die Hosts-Datei nur für temporäre Überschreibungen und lokale Entwicklung verwendet werden. Für permanente Domain-Verwaltung verwenden Sie immer ordnungsgemäße DNS-Einträge. Wenn Sie Domains professionell registrieren und verwalten müssen, stellt Domain-Registrierung durch einen zuverlässigen Anbieter sicher, dass Ihre DNS-Infrastruktur robust und skalierbar ist.

    8. Fazit

    Die /etc/hosts Datei ist ein täuschend einfaches, aber bemerkenswert leistungsstarkes Werkzeug in der Werkzeugkiste jedes Linux-Administrators und Entwicklers. Seine Fähigkeit, die DNS-Auflösung lokal zu überschreiben – mit null Latenz, ohne externe Abhängigkeiten und ohne Infrastrukturänderungen – macht es unverzichtbar für:

    • Entwickler, die Anwendungen lokal erstellen und testen.
    • Systemadministratoren, die Servermigration und DNS-Umstellungsfenster verwalten.
    • Sicherheitsbewusste Benutzer, die bösartige oder unerwünschte Domains blockieren.
    • DevOps-Ingenieure, die lokale Multi-Service-Umgebungen orchestrieren.

    Die wichtigsten Erkenntnisse aus diesem Leitfaden:

    AufgabeBefehl / Aktion
    Hosts-Datei öffnensudo nano /etc/hosts
    Vor dem Bearbeiten sichernsudo cp /etc/hosts /etc/hosts.bak
    Zuordnung überprüfengetent hosts <hostname>
    Mit ping testenping -c 4 <hostname>
    DNS-Cache leerensudo resolvectl flush-caches
    Aus Sicherung wiederherstellensudo cp /etc/hosts.bak /etc/hosts

    Egal ob Sie eine schlanke Entwicklungsumgebung betreiben oder eine Flotte von Produktionsservern auf AlexHost VPS Hosting verwalten – die Beherrschung der Hosts-Datei ist eine grundlegende Fähigkeit, die sich jedes Mal auszahlt, wenn Sie eine schnelle, zuverlässige lokale DNS-Überschreibung benötigen. Bearbeiten Sie mit Vertrauen, dokumentieren Sie Ihre Änderungen und behalten Sie immer eine Sicherung – viel Erfolg beim Routing!