Introduction au fichier hosts

Imaginez que vous pouvez dire à votre ordinateur “va directement à cette adresse” sans demander l’avis de votre serveur DNS. C’est exactement ce que fait le fichier hosts ! Mais saviez-vous qu’à l’origine, le fichier hosts jouait un rôle bien plus important ? Avant l’existence des serveurs DNS modernes, ce fichier était la seule méthode pour gérer la correspondance entre les noms de domaine et les adresses IP sur Internet.
À cette époque, un fichier hosts unique était maintenu manuellement et partagé entre tous les ordinateurs connectés au réseau ARPANET (l’ancêtre d’Internet). Chaque ordinateur devait télécharger régulièrement ce fichier pour pouvoir résoudre les noms de domaine. Bien que cette méthode fonctionnait bien au début, l’augmentation rapide du nombre de sites a conduit à la création du système DNS que nous connaissons aujourd’hui. Pourtant, le fichier hosts est toujours là, prêt à être utilisé localement pour des tâches spécifiques.
Que vous soyez développeur, administrateur réseau, ou simplement un passionné de technologie qui souhaite tester des sites web localement, le fichier hosts est votre raccourci idéal. Il vous permet de faire correspondre des adresses IP à des noms de domaine de manière locale, rapide et sans effort.
Dans ce tutoriel, nous allons découvrir ce qu’est ce fichier, comment l’utiliser, et surtout, pourquoi il peut être très utile dans vos projets. Que vous utilisiez Debian, Ubuntu, ou même Red Hat, les concepts sont les mêmes. Plongeons ensemble dans l’univers du fichier hosts !

Le fichier hosts est un simple fichier texte situé dans le répertoire /etc de votre système Linux (ou son équivalent sur d’autres OS). Il permet de lier des noms de domaine à des adresses IP directement sur votre machine, sans interroger un serveur DNS externe.
Voici à quoi il ressemble dans sa version par défaut :

cat /etc/hosts

Contenu par défaut:

127.0.0.1       localhost
::1             localhost ip6-localhost ip6-loopback

Ou dans mon cas:

Ces lignes sont des entrées de base qui associent l’adresse IP 127.0.0.1 (aussi appelée localhost, soit votre machine) à un nom de domaine local. Mais vous pouvez personnaliser ce fichier pour bien plus d’usages !

Pourquoi utiliser le fichier hosts ?

1. Tester des sites web localement
Imaginez que vous développez un site web sur votre machine locale et que vous souhaitez le tester comme s’il était en ligne. En utilisant le fichier hosts, vous pouvez facilement associer une adresse IP locale à un nom de domaine personnalisé, par exemple monsite.local, pour accéder à votre site sans avoir à taper une adresse IP compliquée.

Exemple :

Dans mon cas, le serveur local a l’adresse IP 192.168.0.242. Voici comment l’ajouter au fichier hosts :

Ouvrez le fichier hosts avec l’éditeur nano :

sudo nano /etc/hosts

Ajoutez la ligne suivante à la fin du fichier :

192.168.0.242 site-test.lan

Enregistrez et quittez nano :
Appuyez sur CTRL + O, puis ENTRÉE pour sauvegarder.
Appuyez sur CTRL + X pour quitter.

 

Vérifiez la configuration :
Pour vérifier si le nom de domaine est correctement associé, utilisez la commande suivante :

ping site-test.lan

 

Accéder à des services internes de manière simplifiée

Vous travaillez dans une entreprise avec plusieurs serveurs et il est difficile de retenir toutes les adresses IP ? Le fichier hosts est là pour vous aider ! Il vous permet de créer des raccourcis avec des noms faciles à mémoriser, même si vous n’avez pas l’autorisation de modifier la configuration du serveur DNS de votre réseau local.

Exemple : Pour accéder à un serveur de fichiers avec l’adresse 192.168.0.241 et à un serveur web avec l’adresse 192.168.0.242 dans mon réseau, j’ai ajouté les lignes suivantes au fichier hosts :

192.168.0.241 file-server.lan
192.168.0.242 web-server.lan

Désormais, je peux accéder à ces serveurs en utilisant les noms file-server.lan et web-server.lan au lieu de leurs adresses IP.

Bloquer l’accès à certains sites (si vous n’avez pas encore installé Pi-hole)

Vous en avez assez de certains sites publicitaires ou indésirables ? Pas de problème ! En redirigeant ces sites vers localhost (votre propre machine), vous pouvez rendre leur accès impossible.
Exemple : Pour bloquer un site publicitaire ennuyeux :

127.0.0.1 adsite.com

Désormais, lorsque votre navigateur tentera d’accéder à ce site, il sera redirigé vers votre machine, et le site ne s’affichera pas. Cela dit, pour une solution plus complète, vous pouvez envisager d’utiliser Pi-hole !

Simuler différents environnements pour des tests

Le fichier hosts peut également être utilisé pour rediriger localement n’importe quel nom de domaine vers une adresse IP spécifique, même pour des sites web publics comme google.com. Cela permet de tester les performances ou configurations de votre site sur différents serveurs sans avoir à modifier les DNS publics.
Exemple : Si vous voulez rediriger localement le domaine google.com vers votre serveur de test, il vous suffit de modifier votre fichier hosts :

192.168.0.242 google.com

Ensuite, en accédant à google.com, vous serez redirigé vers votre serveur local pour effectuer vos tests. Pas besoin de modifier les DNS externes ! Par exemple, vous pouvez faire un ping de test :

Dans cet exemple, vous effectuez un ping vers votre serveur local 192.168.0.242 au lieu du vrai serveur de Google. (Il faut toutefois noter qu’avec les sites utilisant HTTPS, le navigateur affichera une erreur de certificat, car le nom de domaine ne correspondra pas au certificat présenté par votre serveur )

De plus, si vous configurez Apache ou Nginx, vous pouvez utiliser le fichier hosts pour avoir accès à plusieurs sites, comme site1.com et site2.com, localement.

 

Peu importe que vous utilisez Debian, Ubuntu, Red Hat ou une autre distribution Linux, le fichier hosts fonctionne de la même manière. Il est toujours situé dans le dossier /etc, et la façon d’ajouter des lignes reste identique. Les seules différences entre les distributions concernent les outils de gestion réseau, mais le fichier hosts lui-même est universel.
Le fichier hosts est un petit fichier avec des possibilités énormes. Que ce soit pour tester des sites web, rediriger des domaines, bloquer des sites indésirables ou encore gérer des services internes, il est un allié de taille pour simplifier la gestion des noms de domaine localement. C’est un outil puissant, rapide, et surtout très simple à utiliser. Alors, n’attendez plus : personnalisez votre fichier hosts dès maintenant !

Petite note : même si le fichier hosts est très pratique pour les tests et le développement, il est préférable d’éviter de le modifier sur des systèmes de production pour des raisons de sécurité. En effet, toute entrée ajoutée dans ce fichier contourne le DNS normal et peut rediriger du trafic de façon invisible, ce qui en fait une cible fréquente pour les logiciels malveillants. Mieux vaut donc réserver son utilisation aux environnements de lab ou de développement.

Bonne chance!