Le fichier Hosts sous Linux
Le fichier hosts est un composant essentiel dans de nombreux systèmes d’exploitation, y compris l’hébergement VPS Linux. Il sert d’outil au niveau du système local pour mapper les noms d’hôtes aux adresses IP, aidant ainsi votre ordinateur à localiser et à se connecter à différents serveurs ou périphériques sur Internet ou sur un réseau local. Comprendre comment fonctionne le fichier hosts et comment le modifier peut s’avérer utile pour dépanner, bloquer des sites spécifiques ou configurer des noms de domaine personnalisés à des fins de développement. Dans cet article, nous verrons ce qu’est le fichier hosts, où il se trouve dans Linux et comment le modifier efficacement.
1. Qu’est-ce que le fichier Hosts ?
Le fichier hosts est un fichier en texte brut utilisé par le système d’exploitation pour associer des noms d’hôtes lisibles par l’homme (comme www.example.com) aux adresses IP correspondantes. Il fonctionne de la même manière que le système de noms de domaine (DNS), mais il opère localement sur votre machine. Le fichier est utilisé avant d’interroger les serveurs DNS externes, ce qui vous permet de remplacer la résolution DNS par vos propres mappages personnalisés.
Les principales utilisations du fichier hosts sont les suivantes
- Mappage de domaines pour le développement local : Les développeurs utilisent souvent le fichier hosts pour créer des environnements de test locaux en associant des noms de domaine personnalisés à localhost (127.0.0.1).
- Bloquer l’accès à des sites web spécifiques : Vous pouvez bloquer l’accès à certains sites web en faisant pointer leurs noms de domaine vers une adresse IP non routable, comme 0.0.0.0 ou 127.0.0.1.
- Dépannage DNS rapide : Le fichier hosts peut être utilisé pour résoudre des problèmes DNS ou tester des configurations de sites web sans modifier les enregistrements DNS.
2. Emplacement du fichier Hosts sous Linux
Sur les systèmes Linux, le fichier hosts se trouve généralement dans le répertoire /etc et se nomme hosts. Le chemin d’accès complet au fichier est le suivant :
/etc/hosts
Ce fichier est généralement préconfiguré avec des entrées par défaut pour la gestion du réseau local. Par exemple, l’entrée pour localhost est généralement incluse par défaut :
127.0.0.1 localhost ::1 localhost
3. Structure du fichier Hosts
La structure du fichier hosts est simple. Chaque ligne du fichier contient une adresse IP suivie d’un ou plusieurs noms d’hôtes correspondant à cette adresse. Le format est le suivant :
- Adresse_IP : L’adresse IP à laquelle le nom d’hôte doit être résolu.
- hostname : Le nom de domaine ou d’hôte.
- alias (facultatif) : Autres noms pour l’hôte, qui peuvent être ajoutés pour plus de commodité.
Par exemple, si vous souhaitez mapper le domaine example.com sur un serveur local (localhost), vous devez ajouter la ligne suivante :
Vous pouvez également ajouter plusieurs noms d’hôtes sur une seule ligne, comme suit :
4. Édition du fichier Hosts sous Linux
Pour modifier le fichier hosts sur un système Linux, vous devez disposer des droits d’administration (root), car ce fichier fait partie de la configuration du système. Voici un guide étape par étape pour modifier le fichier hosts :
Étape 1 : Ouvrir le fichier Hosts en tant que root
Puisque vous avez besoin des droits de root pour modifier le fichier hosts, vous devez l’ouvrir à l’aide d’un éditeur de texte avec sudo. Les éditeurs de texte les plus courants sont nano et vim. Voici comment ouvrir le fichier avec nano :
sudo nano /etc/hosts
Étape 2 : Éditer le fichier Hosts
Une fois le fichier ouvert, vous pouvez ajouter, modifier ou supprimer des entrées selon vos besoins. Par exemple, pour bloquer l’accès à un site Web tel que example.com, vous pouvez ajouter la ligne suivante :
Cette ligne bloque effectivement le site web en faisant pointer le domaine vers une adresse IP non routable.
Étape 3 : Sauvegarder et quitter
Après avoir effectué vos modifications, enregistrez le fichier. Si vous utilisez nano, appuyez sur CTRL O pour enregistrer les modifications, puis appuyez sur Entrée. Pour quitter, appuyez sur CTRL X.
Si vous utilisez vim, vous pouvez enregistrer et quitter en tapant :
Étape 4 : Vérifier les modifications
Pour vérifier que les changements ont pris effet, vous pouvez utiliser la commande ping ou simplement essayer d’accéder au domaine dans votre navigateur. Par exemple, vous pouvez utiliser la commande ping ou simplement essayer d’accéder au domaine dans votre navigateur :
Si vous avez bloqué le domaine en le mappant à 0.0.0.0 ou 127.0.0.1, vous devriez voir un message indiquant que l’hôte est inaccessible.
5. Cas d’utilisation courants du fichier Hosts
5.1. Développement local
Lorsque vous travaillez sur des projets de développement web, vous pouvez utiliser le fichier hosts pour faire correspondre des domaines personnalisés à localhost. Cela vous permet d’utiliser une URL plus lisible par l’homme comme monprojet.local au lieu de localhost:3000.
Exemple :
127.0.0.1 monprojet.local
Après avoir ajouté cette entrée, vous pouvez naviguer vers myproject.local dans votre navigateur web, et il pointera vers votre serveur de développement local.
5.2. Blocage des sites web
Vous pouvez utiliser le fichier hosts pour bloquer l’accès à des sites web spécifiques en faisant correspondre leurs domaines à 0.0.0.0 ou 127.0.0.1. Cette fonction est utile pour empêcher l’accès à des sites distrayants ou à des domaines potentiellement dangereux.
Exemple :
Ceci bloquera l’accès à Facebook en redirigeant les requêtes vers une adresse locale inexistante.
5.3. Contourner les problèmes de DNS
Si vous rencontrez des problèmes de résolution DNS ou si vous souhaitez tester un site web sur un nouveau serveur avant de mettre à jour les enregistrements DNS, vous pouvez utiliser le fichier hosts pour mapper temporairement un domaine à une adresse IP spécifique.
Exemple :
Cela forcera votre système à résoudre mywebsite.com à l’adresse IP 203.0.113.15, indépendamment de ce que disent les enregistrements DNS.
6. Vider le cache DNS (facultatif)
Après avoir apporté des modifications au fichier hosts, votre système d’exploitation peut encore mettre en cache les résolutions DNS précédentes. Pour appliquer les modifications immédiatement, il peut être nécessaire de vider le cache DNS. La commande suivante peut être utilisée sur les systèmes Linux qui prennent en charge systemd :
sudo systemctl restart systemd-resolved
Vous pouvez également utiliser la commande suivante : sudo systemctl restart systemd-resolved
sudo service network-manager restart
Cela garantit que les nouveaux mappages dans le fichier hosts sont utilisés immédiatement.
Conclusion
Le fichier hosts est un outil puissant qui permet de contrôler la manière dont votre système résout les noms de domaine. Qu’il s’agisse de bloquer des sites web indésirables, de mettre en place des environnements de développement locaux ou de résoudre des problèmes DNS, le fait de savoir comment modifier le fichier hosts peut vous faire gagner du temps et améliorer vos capacités de gestion du réseau. Sous Linux, la modification du fichier hosts est simple et peut être effectuée en quelques étapes à l’aide de commandes de terminal de base. N’oubliez pas d’utiliser les privilèges de l’administrateur (root) lorsque vous modifiez cet important fichier système !