GNU/Linux >> LINUX-Kenntnisse >  >> Linux

/etc/hosts-Datei unter Linux verstehen

Was ist /etc/hosts und warum wird es verwendet?

Um Netzwerkverkehr an einen Host zu senden, muss die numerische IP-Adresse (Internet Protocol) für diesen Host bekannt sein. Die IP-Adresse wird traditionell als xxx.xxx.xxx.xxx geschrieben, wobei jedes xxx einen Wert von 0 bis 255 für eine IPv4-Netzwerkadresse darstellt. Computer benötigen diese Adressen, aber Menschen finden es schwierig, sich numerische Werte zu merken. Der Domain Name Service (DNS) stellt einen Mechanismus bereit, um einer numerischen IP-Adresse einen oder mehrere alphanumerische Namen zuzuordnen. Auf einem Linux-System werden diese lesbaren Namen von der Resolver-Bibliothek, die in den libresolve.so-Dateien enthalten ist, die als Teil des glibc-RPM-Pakets bereitgestellt werden, in ihre numerischen IP-Äquivalente konvertiert. Programme, die die numerische IP-Adresse für einen Namen nachschlagen müssen, rufen diese Bibliothek auf.

Hostnamen und ihre IP-Adressen können an verschiedenen Orten gefunden werden:lokale Dateien, Remote-DNS-Server oder NIS+-Server, um nur einige zu nennen. Die Reihenfolge, in der diese Ressourcen durchsucht werden, hängt von den Hosts ab:Eintrag in /etc/nsswitch.conf Datei. Diese Zeile sieht normalerweise so aus:

# vi /etc/nsswitch.conf
hosts: files dns

Dies veranlasst die Resolver-Bibliothek, zuerst die lokale /etc/hosts-Datei zu konsultieren; Wenn der Hostname dort nicht gefunden wird, wenden Sie sich an die entfernten DNS-Nameserver, die in /etc/resolv.conf angegeben sind Datei.

Linux bietet die Bindung RPM-Paket, um einer Verwaltungsdomäne zu ermöglichen, ihren eigenen DNS-Dienst zu konfigurieren und zu warten, aber häufig umfasst die Größe des lokalen Netzwerks nur wenige Hosts und rechtfertigt den Aufwand für die Wartung eines DNS-Dienstes nicht.

Format der /etc/hosts-Datei

Die Datei /etc/hosts ist eine gewöhnliche Textdatei. Zwei Arten von Zeilen sind erlaubt:

  1. Leere Zeilen
  2. Hostnamendefinitionen

Linien können nach Bedarf vermischt werden. Kommentare beginnen mit einem Hash-Symbol (# ) und fahren Sie bis zum Ende der Zeile fort.

Hostnamen und IP-Adressen zuordnen

Für jeden Host sollte eine einzelne Zeile mit den folgenden Informationen vorhanden sein:

IP_address canonical_hostname [aliases ...]

Felder des Eintrags werden durch beliebige Leerzeichen (Leerzeichen oder Tabulatoren) getrennt. Das erste Feld ist die numerische IP-Adresse, die für alle Hostnamen in diesem Eintrag verwendet werden soll. Abhängig von Ihren Anforderungen kann entweder eine IPv4-Adresse (10.1.2.3), eine IPv6-Adresse (2001:0db8:0000:0000:0000:0000:1428:57ab) oder eine IPv6-Abkürzung (::1) verwendet werden.

Nach der IP-Adresse geben verbleibende Token die lokal bekannten Hostnamen an, die dieser IP-Adresse zugeordnet sind. Per Konvention ist der erste Name nach der IP-Adresse der kanonische oder vollqualifizierte Domänenname. Ein Beispiel für einen kanonischen Namen wäre server.example.com; dies ist der offizielle Name des Hosts.

Alle verbleibenden Namen, die für die IP-Adresse definiert sind, sind Aliase oder alternative Namen für den offiziellen Hostnamen. Nehmen wir beispielsweise an, dass eine der Aufgaben, die server.example.com zugewiesen sind, darin besteht, die FTP-Site des Unternehmens zu sein. Ein geeigneter Alias ​​könnte dann myftp.example.com sein und dieser Name könnte dem Eintrag /etc/hosts nach dem kanonischen Namen hinzugefügt werden. Oft ist ein Alias ​​einfach der Hostname ohne Domänensuffix. Zum Beispiel:

192.168.10.12 server.example.com myftp.example.com myhost myftp

Der Vorteil, den kanonischen Hostnamen als erste Definition in der Zeile aufzulisten, besteht darin, dass die IP-zu-Hostname-Konvertierung (ähnlich wie bei Reverse-DNS-Lookups) normalerweise nur den ersten gefundenen Namen anzeigt; Konvention verwendet dafür den kanonischen Namen. In unserem Beispiel der Befehl:

$ ping myftp
PING myhost.example.com (192.168.10.12) 56(84) bytes of data.
64 bytes from myhost.example.com (192.168.10.12): icmp_seq=1 ttl=64 time=0.023 ms
64 bytes from myhost.example.com (192.168.10.12): icmp_seq=2 ttl=64 time=0.028 ms
64 bytes from myhost.example.com (192.168.10.12): icmp_seq=3 ttl=64 time=0.028 ms

Beachten Sie, dass wir myftp angepingt haben, aber die Ergebnisse vom Host myhost kommen:Dies ist ein zuverlässiger Hinweis darauf, dass Sie einen Alias ​​adressieren, nicht den tatsächlichen Host.


Linux
  1. Eine Einführung in die Linux-Datei /etc/fstab

  2. Eine benutzerspezifische Hosts-Datei erstellen, um /etc/hosts zu ergänzen?

  3. Die Datei /etc/xinetd.conf unter Linux verstehen

  4. Beispieldatei /etc/services unter Linux

  5. Wie erstelle ich in meiner Datei /etc/hosts/ unter Linux/OSX eine Wildcard-Subdomain?

Linux-Konfiguration:Verstehen von *.d-Verzeichnissen in /etc

Was ist die Datei /etc/passwd unter Linux?

/etc/group-Datei verstehen

Verstehen der /etc/fstab-Datei unter Linux

Die Dateien /proc/mounts, /etc/mtab und /proc/partitions verstehen

Hostet den Dateiumschalter unter Linux