Gérer la résolution de noms d'hôtes locaux sous Linux

CompTIABeginner
Pratiquer maintenant

Introduction

Dans ce laboratoire, vous apprendrez la compétence essentielle de la gestion de la résolution de noms d'hôtes locaux sous Linux en modifiant directement le fichier /etc/hosts. Ce fichier vous permet de mapper manuellement des noms d'hôtes à des adresses IP sur votre machine locale, une technique cruciale pour le développement web, les tests réseau et l'administration système. En contrôlant ces mappages, vous pouvez outrepasser les serveurs DNS publics et diriger le trafic pour des domaines spécifiques vers une adresse IP locale ou personnalisée.

Vous serez guidé à travers un flux de travail complet et pratique. Tout d'abord, vous inspecterez le contenu par défaut du fichier /etc/hosts à l'aide de la commande cat pour comprendre sa structure. Ensuite, vous utiliserez l'éditeur nano pour ajouter une entrée d'hôte personnalisée. Pour vérifier votre configuration, vous testerez le nouveau nom d'hôte avec la commande ping. Enfin, vous supprimerez l'entrée que vous avez ajoutée, restaurant ainsi le fichier à son état d'origine et complétant l'exercice pratique.

Inspecter le fichier /etc/hosts par défaut avec cat

Dans cette étape, vous apprendrez à visualiser le contenu du fichier /etc/hosts. Ce fichier est un simple fichier texte que votre système d'exploitation utilise pour mapper les noms d'hôtes aux adresses IP. Avant que votre ordinateur ne demande à un serveur DNS sur Internet de résoudre un nom de domaine, il vérifie d'abord ce fichier local. Comprendre sa structure est une compétence réseau fondamentale sous Linux.

Nous utiliserons la commande cat, qui est un utilitaire standard pour lire des fichiers et afficher leur contenu dans le terminal.

Ouvrez votre terminal et exécutez la commande suivante pour afficher le contenu du fichier /etc/hosts :

cat /etc/hosts

Exemple de sortie :

Vous verrez une sortie similaire à celle ci-dessous. Le contenu exact peut varier légèrement, mais le format sera le même.

127.0.0.1       localhost

## The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost   ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
127.0.1.1       Aliyun

192.168.2.67    iZbp1gakoh36s0s067d3ebZ iZbp1gakoh36s0s067d3ebZ

172.20.239.123  ubunut-base-image       ubunut-base-image

172.28.138.90   iZj6c8bsoq3dpsob2zhgheZ iZj6c8bsoq3dpsob2zhgheZ

Analysons cette sortie :

  • 127.0.0.1 localhost: C'est l'entrée la plus courante. Elle mappe l'adresse IP 127.0.0.1 (également connue sous le nom d'adresse de bouclage ou loopback) au nom d'hôte localhost. Ceci est crucial pour le bon fonctionnement de nombreux services locaux.
  • Lignes commençant par #: Ce sont des commentaires. Le système les ignore, mais elles sont utiles pour fournir des explications.
  • Entrées IPv6: Des lignes comme ::1 ip6-localhost sont les équivalents IPv6 pour le bouclage et d'autres configurations réseau standard.

Maintenant que vous avez vu la structure par défaut du fichier hosts, vous êtes prêt à apprendre comment le modifier dans l'étape suivante.

Ajouter une entrée d'hôte personnalisée avec nano

Dans cette étape, vous ajouterez manuellement une nouvelle entrée au fichier /etc/hosts. C'est une compétence pratique pour les développeurs qui ont besoin de pointer un domaine vers un serveur local ou pour les administrateurs système qui configurent des réseaux internes. Comme /etc/hosts est un fichier protégé par le système, vous devez utiliser sudo pour obtenir les permissions nécessaires à sa modification.

Nous utiliserons nano, un éditeur de texte en ligne de commande simple et convivial, préinstallé dans l'environnement LabEx.

Exécutez la commande suivante pour ouvrir /etc/hosts avec nano :

sudo nano /etc/hosts

Le terminal affichera maintenant le contenu du fichier à l'intérieur de l'éditeur nano. Utilisez les touches fléchées pour déplacer votre curseur à la fin du fichier. Ajoutez la nouvelle ligne suivante :

192.168.1.100   myfictionalserver.local

Cette ligne indique à votre système que chaque fois qu'il rencontrera le nom d'hôte myfictionalserver.local, il devra le résoudre en l'adresse IP 192.168.1.100.

Maintenant, vous devez enregistrer les modifications et quitter l'éditeur. Suivez ces combinaisons de touches :

  1. Appuyez sur Ctrl+O (la commande "Write Out" ou "Écrire") pour enregistrer le fichier.
  2. nano vous demandera le "File Name to Write" (Nom du fichier à écrire). Par défaut, c'est /etc/hosts, ce qui est correct, appuyez donc simplement sur Entrée pour confirmer.
  3. Appuyez sur Ctrl+X pour quitter nano et revenir à votre invite de terminal.

Vous avez maintenant modifié avec succès le fichier hosts. Dans l'étape suivante, nous testerons cette nouvelle entrée pour confirmer qu'elle fonctionne comme prévu.

Tester le nom d'hôte personnalisé avec ping

Dans cette étape, vous allez vérifier que l'entrée personnalisée que vous avez ajoutée à /etc/hosts fonctionne correctement. La meilleure façon de le faire est d'utiliser la commande ping. ping est un utilitaire réseau utilisé pour tester la joignabilité d'un hôte sur un réseau IP. Il mesure également le temps nécessaire à l'envoi de messages de l'hôte source à un ordinateur de destination et leur retour.

Lorsque vous utilisez ping sur un nom d'hôte, le système essaie d'abord de résoudre ce nom en une adresse IP. Comme nous avons ajouté une entrée pour myfictionalserver.local dans /etc/hosts, votre système devrait la trouver là et utiliser l'adresse IP 192.168.1.100.

Testons cela. Dans votre terminal, exécutez la commande suivante. Nous utilisons l'option -c 4 pour envoyer seulement 4 paquets puis arrêter, ce qui est pratique pour les tests.

ping -c 4 myfictionalserver.local

Exemple de sortie :

Vous devriez voir une sortie qui confirme la résolution du nom, même si l'hôte est injoignable.

PING myfictionalserver.local (192.168.1.100) 56(84) bytes of data.
^C
--- myfictionalserver.local ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 3053ms

La partie la plus importante est la toute première ligne : PING myfictionalserver.local (192.168.1.100). Cela confirme que votre système a résolu avec succès le nom d'hôte myfictionalserver.local en l'adresse IP 192.168.1.100 en utilisant votre entrée dans le fichier /etc/hosts.

La commande continuera de s'exécuter jusqu'à ce qu'elle soit arrêtée (par exemple, en appuyant sur Ctrl+C). Comme il n'y a pas de périphérique réel à l'adresse 192.168.1.100 sur le réseau, aucun paquet ne sera reçu. Cependant, la partie résolution de nom du processus a été un succès, ce que nous voulions démontrer.

Vous avez maintenant confirmé que votre entrée personnalisée dans le fichier hosts est active. Dans la dernière étape, vous apprendrez comment nettoyer en supprimant cette entrée.

Supprimer l'entrée d'hôte personnalisée pour restaurer un état propre

Dans cette dernière étape, vous allez nettoyer les modifications que vous avez apportées au fichier /etc/hosts. Il est essentiel, en particulier dans les environnements partagés ou de production, de revenir sur les modifications temporaires pour éviter tout comportement inattendu ultérieurement. Restaurer le fichier à son état d'origine garantit que la résolution de noms de votre système fonctionne comme prévu pour toutes les autres opérations réseau.

Comme précédemment, vous aurez besoin des privilèges sudo pour éditer le fichier avec nano.

Ouvrez à nouveau le fichier /etc/hosts dans l'éditeur :

sudo nano /etc/hosts

Utilisez les touches fléchées pour naviguer jusqu'à la ligne que vous avez ajoutée à l'étape 2 :

192.168.1.100   myfictionalserver.local

Avec votre curseur sur cette ligne, vous pouvez la supprimer. Un moyen rapide de supprimer une ligne entière dans nano est d'appuyer sur Ctrl+K.

Après avoir supprimé la ligne, enregistrez le fichier et quittez l'éditeur :

  1. Appuyez sur Ctrl+O, puis sur Entrée pour enregistrer les modifications.
  2. Appuyez sur Ctrl+X pour quitter nano.

Pour confirmer que l'entrée a été supprimée et que le système ne peut plus résoudre le nom d'hôte localement, essayez de le ping une dernière fois :

ping myfictionalserver.local

Exemple de sortie :

Cette fois, la commande devrait échouer immédiatement avec un message d'erreur, car le système n'a aucun moyen de résoudre le nom.

ping: myfictionalserver.local: Name or service not known

Cela confirme que vous avez supprimé avec succès l'entrée personnalisée et restauré votre fichier hosts à un état propre.

Résumé

Dans ce laboratoire, vous avez appris à gérer la résolution de noms d'hôtes locaux sous Linux en manipulant le fichier /etc/hosts. Vous avez commencé par utiliser la commande cat pour inspecter le contenu par défaut et la structure de ce fichier, en comprenant son rôle dans la mise en correspondance des adresses IP avec les noms d'hôtes avant qu'une requête DNS ne soit effectuée. Vous avez vu comment les entrées standard comme 127.0.0.1 localhost sont formatées et l'utilisation des commentaires pour la documentation.

Après l'inspection, vous avez acquis des compétences pratiques en utilisant l'éditeur de texte nano pour ajouter une entrée d'hôte personnalisée, une tâche courante pour le développement local ou les tests réseau. Pour confirmer que vos modifications étaient efficaces, vous avez utilisé la commande ping pour tester le nouveau nom d'hôte personnalisé, en vérifiant que le système le résolvait à l'adresse IP que vous aviez spécifiée. Enfin, vous avez terminé le laboratoire en supprimant l'entrée personnalisée pour restaurer le système à son état d'origine, démontrant ainsi le cycle de vie complet de la gestion d'une entrée d'hôte locale.