Sur Linux, il arrive que la connexion réseau semble active, mais que les sites web ne s’ouvrent pas, ou que l’accès par adresse IP fonctionne alors que l’accès par nom de domaine échoue. Dans ce cas, le problème vient souvent de la résolution DNS. Le rôle du DNS est de convertir un nom de domaine comme example.com en adresse IP réelle. Si ce mécanisme ne fonctionne plus, le réseau peut paraître opérationnel, mais l’utilisation normale d’Internet devient très difficile.
Symptômes fréquents
- Le navigateur indique que le serveur est introuvable
ping 8.8.8.8fonctionne, maisping google.coméchoue- Les gestionnaires de paquets comme
apt,dnf,yumoupacmanne fonctionnent pas - Le message
Temporary failure in name resolutionapparaît
Commencer par bien isoler la panne
Il faut d’abord déterminer si tout le réseau est concerné, ou uniquement la résolution DNS.
ping -c 4 8.8.8.8
ping -c 4 google.com
ip addr
ip route
Si 8.8.8.8 répond mais pas google.com, le problème vient très probablement du DNS. Si même l’accès direct par IP échoue, il faut plutôt suspecter l’interface réseau, le Wi-Fi, la passerelle ou le routage.
Causes principales
1. Mauvaise configuration de /etc/resolv.conf
Sur de nombreux systèmes Linux, les informations des serveurs DNS sont stockées dans /etc/resolv.conf. S’il n’y a pas de nameserver valide, la résolution de noms ne pourra pas fonctionner.
cat /etc/resolv.conf
Exemple :
nameserver 8.8.8.8
nameserver 1.1.1.1
Si le fichier est vide ou pointe vers un mauvais résolveur local, la résolution échouera. Il faut aussi savoir que sur les systèmes Linux modernes, ce fichier est souvent généré automatiquement par NetworkManager ou systemd-resolved, donc les modifications manuelles peuvent être écrasées.
2. Problème avec systemd-resolved
Sur Ubuntu et d’autres distributions, systemd-resolved gère souvent le DNS et utilise 127.0.0.53 comme résolveur local. Si ce service s’arrête, la résolution DNS cesse de fonctionner.
systemctl status systemd-resolved
resolvectl status
En cas de problème, on peut redémarrer le service :
sudo systemctl restart systemd-resolved
3. DNS mal appliqué par NetworkManager
Sur les Linux de bureau, NetworkManager récupère souvent les serveurs DNS via DHCP. Si un profil réseau est corrompu ou si la reconnexion se passe mal, les bons serveurs DNS peuvent ne pas être appliqués.
nmcli dev show | grep DNS
nmcli connection show
Si nécessaire :
sudo systemctl restart NetworkManager
4. Effet du VPN, du proxy ou du pare-feu
Un VPN peut rediriger les requêtes DNS de manière incorrecte, et un pare-feu peut bloquer le port 53. Dans ce cas, le réseau semble partiellement fonctionner, mais les noms de domaine ne se résolvent plus.
5. Cache DNS obsolète ou corrompu
Si le cache local contient de mauvaises informations ou des données trop anciennes, certains domaines peuvent cesser de répondre. Vider le cache peut alors résoudre le problème.
sudo resolvectl flush-caches
Étapes pratiques de résolution
Étape 1 : Interroger directement un DNS public
nslookup google.com 8.8.8.8
dig google.com @8.8.8.8
Si cela fonctionne, le DNS public répond correctement et la cause est probablement locale.
Étape 2 : Définir temporairement un DNS public
sudo sh -c 'printf "nameserver 8.8.8.8\nnameserver 1.1.1.1\n" > /etc/resolv.conf'
C’est une solution temporaire. Après redémarrage ou reconnexion, ce fichier peut être réécrit. Pour une correction durable, il faut ajuster la configuration de NetworkManager, netplan ou systemd-resolved.
Étape 3 : Vérifier netplan sur Ubuntu
sudo nano /etc/netplan/*.yaml
Exemple :
nameservers:
addresses: [8.8.8.8,1.1.1.1]
Puis appliquer :
sudo netplan apply
Étape 4 : Renouveler la configuration DHCP
sudo dhclient -r
sudo dhclient
Si le serveur DHCP a fourni des serveurs DNS incorrects, cela peut corriger le problème.
Commandes utiles pour le diagnostic
ping -c 4 8.8.8.8
ping -c 4 google.com
cat /etc/resolv.conf
systemctl status systemd-resolved
resolvectl status
nmcli dev show | grep DNS
nslookup google.com
dig google.com
journalctl -u systemd-resolved --no-pager | tail -n 50
Prévenir une nouvelle panne
- Ne pas se contenter d’éditer
/etc/resolv.confmanuellement - Savoir si le DNS est géré par DHCP, NetworkManager ou systemd-resolved
- Vérifier le DNS après l’installation ou l’activation d’un VPN
- Sur un serveur, définir explicitement des DNS fixes
Conclusion
Quand Linux ne parvient pas à résoudre les noms DNS, la première vérification consiste à savoir si la connectivité IP fonctionne encore. Cela permet de distinguer rapidement un problème purement DNS d’une panne réseau plus large. Ensuite, il faut examiner successivement /etc/resolv.conf, systemd-resolved, NetworkManager, DHCP et la configuration VPN. L’objectif n’est pas seulement de rétablir temporairement le réseau, mais aussi de comprendre quel composant gère réellement le DNS sur la machine.