Lokale Hostnamenauflösung unter Linux verwalten

CompTIABeginner
Jetzt üben

Einführung

In diesem Lab erlernen Sie die wesentliche Fähigkeit, die lokale Hostnamenauflösung unter Linux zu verwalten, indem Sie die Datei /etc/hosts direkt bearbeiten. Diese Datei ermöglicht es Ihnen, Hostnamen manuell IP-Adressen auf Ihrem lokalen Rechner zuzuordnen, eine entscheidende Technik für die Webentwicklung, Netzwerktests und die Systemadministration. Durch die Kontrolle dieser Zuordnungen können Sie öffentliche DNS-Server überschreiben und den Datenverkehr für bestimmte Domains auf eine lokale oder benutzerdefinierte IP-Adresse umleiten.

Sie werden durch einen vollständigen, praktischen Workflow geführt. Zuerst inspizieren Sie den Standardinhalt der Datei /etc/hosts mit dem Befehl cat, um deren Struktur zu verstehen. Anschließend verwenden Sie den Editor nano, um einen benutzerdefinierten Host-Eintrag hinzuzufügen. Um Ihre Konfiguration zu überprüfen, testen Sie den neuen Hostnamen mit dem Befehl ping. Abschließend entfernen Sie den von Ihnen hinzugefügten Eintrag, stellen den ursprünglichen Zustand der Datei wieder her und schließen die praktische Übung ab.

Standard-Datei /etc/hosts mit cat inspizieren

In diesem Schritt lernen Sie, wie Sie den Inhalt der Datei /etc/hosts anzeigen. Diese Datei ist eine einfache Textdatei, die Ihr Betriebssystem verwendet, um Hostnamen IP-Adressen zuzuordnen. Bevor Ihr Computer einen DNS-Server im Internet fragt, um einen Domainnamen aufzulösen, prüft er zuerst diese lokale Datei. Das Verständnis ihrer Struktur ist eine grundlegende Netzwerkfähigkeit unter Linux.

Wir werden den Befehl cat verwenden, ein Standardwerkzeug zum Lesen von Dateien und zum Ausgeben ihres Inhalts auf dem Terminal.

Öffnen Sie Ihr Terminal und führen Sie den folgenden Befehl aus, um den Inhalt der Datei /etc/hosts anzuzeigen:

cat /etc/hosts

Beispielausgabe:

Sie sehen eine Ausgabe, die der unten stehenden ähnelt. Der genaue Inhalt kann leicht variieren, aber das Format bleibt gleich.

127.0.0.1       localhost

## The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost   ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
127.0.1.1       Aliyun

192.168.2.67    iZbp1gakoh36s0s067d3ebZ iZbp1gakoh36s0s067d3ebZ

172.20.239.123  ubunut-base-image       ubunut-base-image

172.28.138.90   iZj6c8bsoq3dpsob2zhgheZ iZj6c8bsoq3dpsob2zhgheZ

Lassen Sie uns diese Ausgabe aufschlüsseln:

  • 127.0.0.1 localhost: Dies ist der häufigste Eintrag. Er ordnet die IP-Adresse 127.0.0.1 (auch bekannt als Loopback-Adresse) dem Hostnamen localhost zu. Dies ist entscheidend dafür, dass viele lokale Dienste korrekt funktionieren.
  • Zeilen, die mit # beginnen: Dies sind Kommentare. Das System ignoriert sie, aber sie sind nützlich, um Erklärungen zu geben.
  • IPv6-Einträge: Zeilen wie ::1 ip6-localhost sind die IPv6-Äquivalente für Loopback und andere Standardnetzwerkkonfigurationen.

Nachdem Sie nun die Standardstruktur der hosts-Datei gesehen haben, sind Sie bereit, im nächsten Schritt zu lernen, wie Sie sie ändern können.

Benutzerdefinierten Host-Eintrag mit nano hinzufügen

In diesem Schritt fügen Sie manuell einen neuen Eintrag zur Datei /etc/hosts hinzu. Dies ist eine praktische Fähigkeit für Entwickler, die eine Domain auf einen lokalen Server verweisen müssen, oder für Systemadministratoren, die interne Netzwerke einrichten. Da /etc/hosts eine systemgeschützte Datei ist, müssen Sie sudo verwenden, um die erforderlichen Berechtigungen zum Ändern zu erhalten.

Wir verwenden nano, einen einfachen und benutzerfreundlichen Texteditor für die Kommandozeile, der in der LabEx-Umgebung vorinstalliert ist.

Führen Sie den folgenden Befehl aus, um /etc/hosts mit nano zu öffnen:

sudo nano /etc/hosts

Das Terminal zeigt nun den Inhalt der Datei im nano-Editor an. Verwenden Sie die Pfeiltasten, um den Cursor an das Ende der Datei zu bewegen. Fügen Sie die folgende neue Zeile hinzu:

192.168.1.100   myfictionalserver.local

Diese Zeile teilt Ihrem System mit, dass es den Hostnamen myfictionalserver.local immer dann zur IP-Adresse 192.168.1.100 auflösen soll, wenn es ihn sieht.

Nun müssen Sie die Änderungen speichern und den Editor beenden. Führen Sie dazu folgende Tastenkombinationen aus:

  1. Drücken Sie Ctrl+O (der Befehl "Write Out"), um die Datei zu speichern.
  2. nano fragt nach dem "File Name to Write". Der Standardwert ist /etc/hosts, was korrekt ist. Drücken Sie einfach Enter, um dies zu bestätigen.
  3. Drücken Sie Ctrl+X, um nano zu beenden und zu Ihrer Terminal-Eingabeaufforderung zurückzukehren.

Sie haben nun die hosts-Datei erfolgreich geändert. Im nächsten Schritt testen wir diesen neuen Eintrag, um zu bestätigen, dass er wie erwartet funktioniert.

Benutzerdefinierten Hostnamen mit ping testen

In diesem Schritt überprüfen Sie, ob der benutzerdefinierte Eintrag, den Sie zu /etc/hosts hinzugefügt haben, korrekt funktioniert. Der beste Weg, dies zu tun, ist die Verwendung des Befehls ping. ping ist ein Netzwerkdienstprogramm, das verwendet wird, um die Erreichbarkeit eines Hosts in einem IP-Netzwerk zu testen. Es misst auch die Zeit, die benötigt wird, um Nachrichten vom Quellhost an einen Zielcomputer zu senden und zurück.

Wenn Sie einen Hostnamen anpingen, versucht das System zuerst, diesen Namen in eine IP-Adresse aufzulösen. Da wir einen Eintrag für myfictionalserver.local in /etc/hosts hinzugefügt haben, sollte Ihr System ihn dort finden und die IP-Adresse 192.168.1.100 verwenden.

Lassen Sie uns das testen. Führen Sie in Ihrem Terminal den folgenden Befehl aus. Wir verwenden die Option -c 4, um nur 4 Pakete zu senden und dann zu stoppen, was für Tests praktisch ist.

ping -c 4 myfictionalserver.local

Beispielausgabe:

Sie sollten eine Ausgabe sehen, die die Namensauflösung bestätigt, auch wenn der Host nicht erreichbar ist.

PING myfictionalserver.local (192.168.1.100) 56(84) bytes of data.
^C
--- myfictionalserver.local ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 3053ms

Der wichtigste Teil ist die allererste Zeile: PING myfictionalserver.local (192.168.1.100). Dies bestätigt, dass Ihr System den Hostnamen myfictionalserver.local erfolgreich mithilfe Ihres /etc/hosts-Eintrags in die IP-Adresse 192.168.1.100 aufgelöst hat.

Der Befehl wird weiter ausgeführt, bis er gestoppt wird (z. B. durch Drücken von Ctrl+C). Da sich kein tatsächliches Gerät unter 192.168.1.100 im Netzwerk befindet, werden keine Pakete empfangen. Der Teil der Namensauflösung des Prozesses war jedoch erfolgreich, was wir demonstrieren wollten.

Sie haben nun bestätigt, dass Ihr benutzerdefinierter /etc/hosts-Eintrag aktiv ist. Im letzten Schritt lernen Sie, wie Sie diesen Eintrag wieder entfernen können.

Benutzerdefinierten Host-Eintrag entfernen, um einen sauberen Zustand wiederherzustellen

In diesem letzten Schritt bereinigen Sie die Änderungen, die Sie an der Datei /etc/hosts vorgenommen haben. Es ist eine entscheidende Praxis, insbesondere in gemeinsam genutzten oder Produktionsumgebungen, temporäre Änderungen rückgängig zu machen, um unerwartetes Verhalten später zu vermeiden. Durch die Wiederherstellung der Datei in ihren ursprünglichen Zustand stellen Sie sicher, dass die Namensauflösung Ihres Systems für alle anderen Netzwerkoperationen wie erwartet funktioniert.

Wie zuvor benötigen Sie sudo-Berechtigungen, um die Datei mit nano zu bearbeiten.

Öffnen Sie die Datei /etc/hosts erneut im Editor:

sudo nano /etc/hosts

Verwenden Sie die Pfeiltasten, um zu der Zeile zu navigieren, die Sie in Schritt 2 hinzugefügt haben:

192.168.1.100   myfictionalserver.local

Wenn sich Ihr Cursor auf dieser Zeile befindet, können Sie sie löschen. Eine schnelle Möglichkeit, eine ganze Zeile in nano zu löschen, ist das Drücken von Ctrl+K.

Nachdem Sie die Zeile gelöscht haben, speichern Sie die Datei und beenden Sie den Editor:

  1. Drücken Sie Ctrl+O und dann Enter, um die Änderungen zu speichern.
  2. Drücken Sie Ctrl+X, um nano zu beenden.

Um zu bestätigen, dass der Eintrag entfernt wurde und das System den Hostnamen nicht mehr lokal auflösen kann, versuchen Sie, ihn ein letztes Mal anzupingen:

ping myfictionalserver.local

Beispielausgabe:

Dieses Mal sollte der Befehl sofort mit einer Fehlermeldung fehlschlagen, da das System keine Möglichkeit hat, den Namen aufzulösen.

ping: myfictionalserver.local: Name or service not known

Dies bestätigt, dass Sie den benutzerdefinierten Eintrag erfolgreich entfernt und Ihre hosts-Datei in einen sauberen Zustand zurückversetzt haben.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie die lokale Hostnamenauflösung unter Linux verwalten, indem Sie die Datei /etc/hosts bearbeiten. Sie haben zunächst mit dem Befehl cat den Standardinhalt und die Struktur dieser Datei inspiziert und ihre Rolle bei der Zuordnung von IP-Adressen zu Hostnamen verstanden, bevor eine DNS-Abfrage durchgeführt wird. Sie haben gesehen, wie Standardeinträge wie 127.0.0.1 localhost formatiert sind und wie Kommentare zur Dokumentation verwendet werden.

Nach der Inspektion haben Sie praktische Fähigkeiten erworben, indem Sie den Texteditor nano verwendet haben, um einen benutzerdefinierten Host-Eintrag hinzuzufügen, eine gängige Aufgabe für die lokale Entwicklung oder Netzwerktests. Um zu bestätigen, dass Ihre Änderungen wirksam waren, haben Sie mit dem Befehl ping den neuen benutzerdefinierten Hostnamen getestet und überprüft, ob das System ihn der von Ihnen angegebenen IP-Adresse zugeordnet hat. Abschließend haben Sie das Lab abgeschlossen, indem Sie den benutzerdefinierten Eintrag entfernt haben, um das System in seinen ursprünglichen Zustand zurückzuversetzen, und so den vollständigen Lebenszyklus der Verwaltung eines lokalen Host-Eintrags demonstriert haben.