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 ?
- 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). - Bloquer les sites web : Vous pouvez rediriger les domaines indésirables vers
0.0.0.0ou127.0.0.1(adresse de boucle locale) pour empêcher l'accès. - Dépannage réseau : Vous pouvez contourner le DNS pour tester la connectivité à un serveur spécifique.
- Mappage de domaine personnalisé : Vous pouvez attribuer des noms conviviaux aux adresses IP dans un réseau privé.
- 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 localhostRaison :
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.localRaison :
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.comse résout en une adresse IP à partir d'un serveur DNS. - Avec cette entrée, votre ordinateur résoudra toujours
example.comen127.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/hostsremplace 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.bakCela 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/hostsou
sudo vim /etc/hosts3. 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 myserver127.0.0.1est mappé àlocalhost(par défaut).192.168.1.100est attribué àmyserver.local, avecmyservercomme alias.
4. Ajouter un domaine personnalisé
Pour mapper un domaine à un serveur local :
127.0.0.1 mywebsite.localMaintenant, 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.comou
127.0.0.1 www.example.comCela 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 surY, et appuyez surEntrée. - Dans Vim, appuyez sur
ÉCHAP, tapez:wq, et appuyez surEntré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-resolvedou pour nscd :
sudo systemctl restart nscdLecture 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.localou
getent hosts mywebsite.local9. 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/hosts10. Vérifier l'intégrité du fichier
Après la restauration, vérifiez si le fichier contient les entrées correctes :
cat /etc/hostsou
getent hosts localhostConclusion
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.