Recherche de site Web

Comment modifier en toute sécurité le fichier Hosts sous Linux : un guide pour débutants


Avez-vous déjà voulu tester un site web en local, bloquer les publicités gênantes ou créer des raccourcis pour les appareils de votre réseau ? Le fichier hosts de Linux est un outil puissant qui peut vous aider à faire tout cela et bien plus encore ! Situé à /etc/hosts, ce simple fichier texte vous permet de mapper les noms d'hôtes à des adresses IP spécifiques, vous donnant ainsi le contrôle sur la manière dont votre système résout les noms de domaine. Dans ce guide, nous allons apprendre pourquoi et comment modifier en toute sécurité le fichier hosts sous Linux, ainsi que des exemples concrets.

Qu'est-ce que le fichier Hosts ?

Le fichier /etc/hosts est un fichier texte local utilisé par le système d'exploitation pour mapper les noms d'hôtes aux adresses IP avant d'interroger un serveur DNS (Système de Noms de Domaine). Il fournit un moyen de remplacer la résolution DNS pour des noms de domaine spécifiques.

Pourquoi modifier le fichier Hosts ?

  1. Développement local : Les développeurs l'utilisent pour pointer des noms de domaine vers des serveurs locaux (par exemple, 127.0.0.1 example.com).
  2. Bloquer les sites web : Vous pouvez rediriger les domaines indésirables vers 0.0.0.0 ou 127.0.0.1 (adresse de boucle locale) pour empêcher l'accès.
  3. Dépannage réseau : Vous pouvez contourner le DNS pour tester la connectivité à un serveur spécifique.
  4. Mappage de domaine personnalisé : Vous pouvez attribuer des noms conviviaux aux adresses IP dans un réseau privé.
  5. Accélérer l'accès aux sites Web : Le fichier hosts est vérifié avant le système DNS d'Internet. Si un site Web est dans votre fichier hosts, votre ordinateur n'a pas besoin de le rechercher en ligne, ce qui permet un chargement plus rapide.

Précautions lors de la modification du fichier /etc/hosts

  • Ne supprimez pas les entrées système existantes comme 127.0.0.1 localhost.
  • Assurez-vous qu'il n'y a pas d'entrées en double pour le même nom d'hôte.
  • Si un nom d'hôte est défini dans /etc/hosts, il remplacera la résolution DNS.

Je vais expliquer chaque précaution en termes simples afin que vous puissiez comprendre pourquoi elles sont importantes.

1. Ne supprimez pas les entrées système existantes comme 127.0.0.1 localhost

Votre système dépend de 127.0.0.1 localhost pour les processus internes. Supprimer ou modifier cette ligne peut provoquer des dysfonctionnements des logiciels ou des services système.

Exemple d’une entrée /etc/hosts par défaut :

127.0.0.1   localhost
::1         localhost

Raison :

De nombreux programmes, y compris les serveurs et les outils réseau, supposent que localhost correspond toujours à 127.0.0.1. Si cela est manquant, certains logiciels peuvent ne pas fonctionner correctement.

2. Assurez-vous qu'il n'y a pas d'entrées en double pour le même nom d'hôte

Si vous ajoutez le même nom d'hôte plusieurs fois avec différentes adresses IP, votre système pourrait être confus.

Exemple d'un fichier /etc/hosts mauvais :

127.0.0.1   mywebsite.local
192.168.1.100 mywebsite.local

Raison :

Le système utilisera la première entrée qu'il trouve, et la deuxième sera ignorée. Cela peut provoquer un comportement inattendu lors de la tentative d'accès à mywebsite.local.

3. Si un nom d'hôte est défini dans /etc/hosts, il remplacera la résolution DNS

Le fichier /etc/hosts est vérifié avant que le système interroge les serveurs DNS externes. Si un domaine est répertorié dans /etc/hosts, le système utilisera l'adresse IP de ce fichier, même si une adresse différente est disponible dans le DNS public.

Exemple :

127.0.0.1   example.com
  • Normalement, example.com se résout en une adresse IP à partir d'un serveur DNS.
  • Avec cette entrée, votre ordinateur résoudra toujours example.com en 127.0.0.1, quelle que soit l'adresse IP réelle.

Raison :

Si vous remplacez accidentellement un nom d'hôte important, vous pourriez bloquer l'accès à des sites ou services légitimes.

Points clés :

  • Toujours sauvegarder le fichier avant de le modifier.
  • Ne supprimez jamais ni ne modifiez les entrées par défaut du système.
  • Évitez les entrées en double pour éviter toute confusion.
  • Comprenez que /etc/hosts remplace le DNS, ce qui peut affecter l'accès aux sites web.

Comment modifier le fichier hosts sous Linux

1. Sauvegarder le fichier Hosts

Sauvegarder le fichier /etc/hosts avant d'apporter des modifications est une bonne pratique. Si quelque chose tourne mal, vous pouvez facilement restaurer le fichier original.

Faisons une sauvegarde du fichier /etc/hosts en utilisant la commande :

sudo cp /etc/hosts /etc/hosts.bak

Cela crée une copie nommée hosts.bak dans le même répertoire.

2. Ouvrir le fichier Hosts

Puisque /etc/hosts est un fichier système, le modifier nécessite les privilèges root.

Utilisez un éditeur de texte comme nano ou vim :

sudo nano /etc/hosts

ou

sudo vim /etc/hosts

3. Comprendre le format du fichier hosts

Chaque entrée dans /etc/hosts suit ce format :

<IP Address> <Hostname> [Alias]

Exemple :

127.0.0.1   localhost
192.168.1.100  myserver.local myserver
  • 127.0.0.1 est mappé à localhost (par défaut).
  • 192.168.1.100 est attribué à myserver.local, avec myserver comme alias.

4. Ajouter un domaine personnalisé

Pour mapper un domaine à un serveur local :

127.0.0.1   mywebsite.local

Maintenant, lorsque vous accédez à mywebsite.local, il se résoudra en 127.0.0.1 (localhost).

5. Bloquer un site web

Pour bloquer un site web (par exemple, example.com) :

0.0.0.0 www.example.com

ou

127.0.0.1 www.example.com

Cela empêche l'accès à www.example.com en le redirigeant vers une adresse non routable.

6. Enregistrer et quitter

  • Dans Nano, appuyez sur CTRL + X, puis sur Y, et appuyez sur Entrée.
  • Dans Vim, appuyez sur ÉCHAP, tapez :wq, et appuyez sur Entrée.

7. Vider le cache DNS (si nécessaire)

Certaines distributions Linux mettent en cache les recherches DNS. Pour appliquer les modifications immédiatement, videz le cache DNS :

sudo systemctl restart systemd-resolved

ou pour nscd :

sudo systemctl restart nscd

Lecture connexe : Comment vider ou réinitialiser le cache DNS sous Linux

8. Vérifier les modifications

Testez les modifications en utilisant la commande :

ping mywebsite.local

ou

getent hosts mywebsite.local

9. Restaurer à partir de la sauvegarde (si nécessaire)

Si quelque chose se casse, vous pouvez restaurer le fichier original :

sudo cp /etc/hosts.bak /etc/hosts

10. Vérifier l'intégrité du fichier

Après la restauration, vérifiez si le fichier contient les entrées correctes :

cat /etc/hosts

ou

getent hosts localhost

Conclusion

Dans ce tutoriel étape par étape, nous avons expliqué comment modifier en toute sécurité le fichier hosts sous Linux. En modifiant le fichier hosts, vous obtenez un contrôle précis sur la résolution des noms d'hôtes, ce qui peut être utile pour le développement, les tests et la gestion du réseau.