Le fichier a /etc/hosts
commencé dans l'ancien temps de DARPA en tant que fichier de résolution pour tous les hôtes connectés à Internet (avant l'existence du DNS). Il a la priorité maximale, ce qui signifie que ce fichier est préféré à tout autre système de noms. 1
Cependant, en tant que fichier unique, il ne s'adapte pas bien: la taille du fichier devient trop grande très rapidement. C'est pourquoi le système DNS a été développé, un système de noms distribué hiérarchique. Il permet à tout hôte de trouver efficacement l'adresse numérique d'un autre hôte.
Le concept très ancien du /etc/hosts
fichier est très simple, juste une adresse et un nom d'hôte:
127.0.0.1 localhost
pour chaque ligne. Il s'agit d'une simple liste de paires adresse-hôte. 2
Sa principale utilisation actuelle consiste à contourner la résolution DNS. Une correspondance trouvée dans le /etc/hosts
fichier sera utilisée avant toute entrée DNS. En fait, si le nom recherché (comme localhost
) se trouve dans le fichier, aucune résolution DNS ne sera effectuée.
1 Eh bien, l'ordre de résolution des noms est en fait défini dans /etc/nsswitch.conf
, qui a généralement cette entrée:
hosts: files dns
ce qui signifie "essayer les fichiers ( /etc/hosts
); et s'il échoue, essayez DNS".
Mais cet ordre pourrait être modifié ou élargi.
2 (de nos jours) Le fichier hosts contient des lignes de texte constituées d'une adresse IP dans le premier champ de texte suivi d'un ou plusieurs noms d'hôtes. Chaque champ est séparé par un espace blanc - les tabulations sont souvent préférées pour des raisons historiques, mais des espaces sont également utilisés. Des lignes de commentaires peuvent être incluses; ils sont indiqués par un octothorpe (#) à la première position de ces lignes. Les lignes entièrement vides du fichier sont ignorées. Par exemple, un fichier d'hôtes type peut contenir les éléments suivants:
127.0.0.1 localhost loopback
::1 localhost localhost6 ipv6-localhost ipv6-loopback mycomputer.local
192.168.0.8 mycomputer.lan
10.0.0.27 mycomputer.lan
Cet exemple contient des entrées pour les adresses de bouclage du système et leurs noms d'hôte, la première ligne est un contenu par défaut typique du fichier hosts. La deuxième ligne a plusieurs noms supplémentaires (probablement uniquement valables dans les systèmes locaux). L'exemple montre qu'une adresse IP peut avoir plusieurs noms d'hôtes (localhost et loopback), et qu'un nom d'hôte peut être mappé à la fois aux adresses IP IPv4 et IPv6, comme indiqué sur les première et deuxième lignes respectivement. Un nom ( mycomputer.lan
) peut se résoudre en plusieurs adresses ( 192.168.0.8 10.0.0.27
). Cependant, dans ce cas, lequel est utilisé dépend des routes (et de leurs priorités) définies pour l'ordinateur.
Certains systèmes d'exploitation plus anciens n'avaient aucun moyen de signaler une liste d'adresses pour un nom donné.