GNU/Linux >> Tutoriels Linux >  >> Linux

Comprendre le fichier /etc/hosts sous Linux

Qu'est-ce que /etc/hosts et pourquoi est-il utilisé ?

Pour envoyer le trafic réseau à un hôte, l'adresse IP (Internet Protocol) numérique de cet hôte doit être connue. L'adresse IP est traditionnellement écrite sous la forme xxx.xxx.xxx.xxx où chaque xxx représente une valeur comprise entre 0 et 255, pour une adresse réseau IPv4. Les ordinateurs ont besoin de ces adresses, mais les humains ont du mal à se souvenir des valeurs numériques. Le service de nom de domaine (DNS) fournit un mécanisme pour associer un ou plusieurs noms alphanumériques à une adresse IP numérique. Sur un système Linux, ces noms lisibles sont convertis en leurs équivalents IP numériques par la bibliothèque Resolver, contenue dans les fichiers libresolve.so fournis avec le package glibc RPM. Les programmes qui ont besoin de rechercher l'adresse IP numérique pour un nom émettent des appels vers cette bibliothèque.

Les noms d'hôte et leurs adresses IP peuvent être trouvés à divers endroits :fichiers locaux, serveurs DNS distants ou serveurs NIS+, pour n'en nommer que quelques-uns. L'ordre dans lequel ces ressources sont recherchées dépend des hôtes :entrée dans /etc/nsswitch.conf dossier. Cette ligne ressemble généralement à ceci :

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

Cela oblige la bibliothèque de résolution à consulter d'abord le fichier /etc/hosts local; si le nom d'hôte n'y est pas trouvé, alors consultez les serveurs de noms DNS distants identifiés par le /etc/resolv.conf fichier.

Linux fournit le bind Package RPM pour permettre à un domaine administratif de configurer et de maintenir son propre service DNS, mais souvent la taille du réseau local n'est que de quelques hôtes et justifie l'effort de maintenance d'un service DNS injustifié.

Format du fichier /etc/hosts

Le fichier /etc/hosts est un fichier texte ordinaire. Deux types de lignes sont autorisées :

  1. Lignes vides
  2. Définitions des noms d'hôtes

Les lignes peuvent être mélangées au besoin. Les commentaires commencent par un symbole dièse (# ) et continuez jusqu'à la fin de la ligne.

Associer les noms d'hôte et les adresses IP

Pour chaque hôte, une seule ligne doit être présente avec les informations suivantes :

IP_address canonical_hostname [aliases ...]

Les champs de l'entrée sont séparés par des espaces blancs (espaces ou tabulations). Le premier champ est l'adresse IP numérique à utiliser pour tous les noms d'hôtes de cette entrée. Une adresse IPv4 (10.1.2.3), une adresse IPv6 (2001:0db8:0000:0000:0000:0000:1428:57ab) ou une abréviation IPv6 (::1) peuvent être utilisées, selon vos besoins.

Après l'adresse IP, les jetons restants spécifient les noms d'hôte connus localement associés à cette adresse IP. Par convention, le premier nom après l'adresse IP est le nom de domaine canonique ou complet. Un exemple de nom canonique serait server.example.com ; c'est le nom officiel de l'hôte.

Tous les noms restants définis pour l'adresse IP sont des alias ou des noms alternatifs pour le nom d'hôte officiel. Par exemple, supposons que l'une des fonctions attribuées à serveur.exemple.com soit le site FTP de l'entreprise. Un alias approprié pourrait alors être myftp.example.com et ce nom pourrait être ajouté à l'entrée /etc/hosts après le nom canonique. Souvent, un alias est simplement le nom d'hôte, sans suffixe de domaine. Par exemple :

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

L'avantage de répertorier le nom d'hôte canonique comme première définition sur la ligne est que la conversion IP en nom d'hôte (similaire aux recherches DNS inversées) n'affiche généralement que le premier nom trouvé ; convention utilise le nom canonique pour cela. Dans notre exemple, la commande :

$ 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

Notez que nous avons envoyé un ping à myftp, mais les résultats proviennent de l'hôte myhost :il s'agit d'un indice fiable indiquant que vous vous adressez à un alias, et non à l'hôte réel.


Linux
  1. Créer un fichier Hosts spécifique à l'utilisateur pour compléter /etc/hosts ?

  2. Inclure ou non le nom de domaine dans /etc/hosts ?

  3. Comprendre le fichier /etc/inittab sous Linux

  4. Comprendre le fichier /etc/login.defs

  5. Exemple de fichier /etc/services sous Linux

Configuration Linux :Comprendre les répertoires *.d dans /etc

Qu'est-ce que le fichier /etc/passwd sous Linux ?

Comprendre le fichier /etc/group

Comprendre le fichier /etc/fstab sous Linux

Comprendre les fichiers /proc/mounts, /etc/mtab et /proc/partitions

Commutateur de fichiers hôtes sous Linux