Résoudre l’erreur « Échec temporaire de la résolution de nom » sous Linux

Ce tutoriel vous guidera dans le dépannage et la correction de l’erreur « Echec temporaire de la résolution de nom » ou « Temporary failure in name resolution » sur un système anglais. Une erreur fréquente sous Linux.

L’erreur « Échec temporaire de la résolution du nom » se produit lorsque le système ne peut pas traduire le nom d’un site Web en une adresse IP, c’est donc lié directement à la résolution DNS sur votre machine Linux. Pour résoudre ce problème, dans certains cas il faut adapter la configuration de la machine locale, tandis que parfois le problème est ailleurs. Par exemple, une machine qui n’a plus accès à Internet à cause d’un défaut de la connexion Internet en elle-même peut générer cette erreur.

Cette erreur apparaît lorsqu’un utilisateur tente de communiquer avec Internet, que ce soit pour faire un « apt-get update » sur Debian ou tout simplement effectuer un ping vers Internet :

ping tutobox.fr

Puisque la machine locale sous Linux ne peut pas communiquer avec le serveur DNS, elle renvoie cette erreur.

Les causes les plus courantes de cette erreur sont le fichier de configuration réseau resolv.conf et un pare-feu mal configuré. Les étapes à suivre pour corriger l’erreur dans les deux cas que je viens d’évoquer sont indiquées dans cet article.

1. Méthode n°1 : Fichier resolv.conf mal configuré

A. Le contenu du fichier resolv.conf

Sous Linux, et notamment sous Ubuntu et Debian, resolv.conf est un fichier permettant de configurer les serveurs DNS que l’on souhaite utiliser pour la résolution des noms.

Pour commencer, ouvrez le fichier « resolv.conf » dans un éditeur de texte tel que nano ou vi. Personnellement, j’ai l’habitude d’utiliser « nano ».

sudo nano /etc/resolv.conf

Assurez-vous que le fichier resolv.conf contient au moins un serveur de noms. Il faut indiquer un serveur de noms par ligne. Voici un exemple pour utiliser le serveur de noms « 1.1.1.1 » :

nameserver 1.1.1.1
Linux - Échec temporaire de la résolution de nom

Si le fichier ne contient pas de serveur de noms, ajoutez-en au moins un. Par exemple, 8.8.8.8 et 8.8.4.4 sont les serveurs de noms populaires appartenant à Google, et 1.1.1.1 appartient à Cloudflare. Il en existe d’autres…. A vous de choisir.

Quand c’est fait, enregistrez le fichier et quittez.

Ensuite, redémarrez le service de résolution DNS.

sudo systemctl restart systemd-resolved.service

Suite à cette modification, vous pouvez tester que votre nouveau serveur DNS est correctement configuré en envoyant un ping à un site Web, par exemple celui-ci :

ping tutobox.fr

Si vous voyez la commande ping fonctionner, cela signifie que la résolution DNS fonctionne. Sinon, l’erreur continuera de s’afficher.

B. Permissions mal configurées

Si votre fichier resolv.conf contient des serveurs DNS valides, mais que l’erreur persiste, cela peut être dû à des autorisations de fichiers mal configurées. Changez la propriété du fichier pour attribuer le super-utilisateur root avec la commande suivante :

sudo chown root:root /etc/resolv.conf

Modifiez les autorisations pour permettre à tout le monde sur le système de lire le fichier :

sudo chmod 644 /etc/resolv.conf

Quand c’est fait, essayez de faire un ping une nouvelle fois.

ping tutobox.fr

Si l’erreur est due à des autorisations de fichiers incorrectes, les commandes ci-dessus la résolvent avec succès ! Si vous avez toujours l’erreur, explorez la seconde méthode.

2. Méthode n°2 : Restrictions du pare-feu

Une autre raison pour l’erreur « Temporary failure in name resolution » peut être un pare-feu bloquant l’un ou les deux ports suivants :

  • Le port 43, utilisé pour la recherche whois
  • Le port 53, utilisé pour la résolution des noms de domaine

De ce fait, nous devons ouvrir les ports dans le pare-feu de la machine locale. Voici deux exemples avec UFW et firewalld (firewall-cmd), selon votre environnement.

A. Ouvrir les ports dans UFW Firewall

Tapez la commande suivante pour autoriser le trafic sur le port 43 à l’aide du pare-feu UFW :

sudo ufw allow 43/tcp

Ensuite, UFW confirme que la règle a été mise à jour avec succès. Nous devons répéter la commande pour le port 53.

sudo ufw allow 53/tcp

Rechargez le pare-feu UFW avec la commande suivante :

sudo ufw reload

Les deux règles sont opérationnelles, vous pouvez tester avec un « ping » pour voir si l’erreur est résolue, comme nous l’avons fait précédemment.

B. Ouvrir les ports dans firewalld

Certaines distributions Linux telles que Rocky Linux et CentOS utilisent firewalld comme pare-feu par défaut, et non « ufw » que l’on retrouve plutôt sur des distributions comme Debian (même s’il faut l’installer soi-même).

La syntaxe pour ouvrir le port 43 dans firewalld est :

sudo firewall-cmd --add-port=43/tcp --permanent

Ensuite, firewalld affiche le mot « success » en retour.

Répétez la commande pour le port 53, ce qui donne :

sudo firewall-cmd --add-port=53/tcp --permanent

Rechargez le pare-feu avec la commande ci-dessous :

sudo firewall-cmd --reload

Testez la connexion en envoyant un ping vers un nom de domaine :

ping tutobox.fr

3. Conclusion

Grâce à cet article de la boîte à tutoriels, vous devez être en mesure de diagnostiquer et résoudre l’erreur « Echec temporaire de la résolution de nom » ou « Temporary failure in name resolution » sous Linux. Si ces méthodes ne fonctionnent pas, il y a peut-être un pare-feu présent en sortie de votre réseau qui vous empêche de communiquer avec votre serveur DNS externe, ou un défaut sur la configuration du NAT.

Ressources :

Vous aimerez aussi...

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *