Comment changer définitivement de serveur DNS sur Ubuntu 20.04

Changer le DNS sur Ubuntu 20.04 ne se résume pas à modifier quelques paramètres et à espérer que tout ira bien. Il arrive que les serveurs DNS par défaut soient conservés même après la configuration de nouveaux serveurs, notamment si le gestionnaire de réseau est réinitialisé ou si d’autres services écrasent vos configurations. Il n’est pas rare de voir les modifications DNS revenir à la normale après un redémarrage ou un redémarrage du réseau, ce qui peut être très gênant. Donc, si vous cherchez une solution plus durable, pour garantir que votre DNS personnalisé soit conservé même après des mises à jour, des redémarrages ou des changements de réseau, il faut creuser un peu plus.

Ce guide vous présente la méthode concrète, un peu complexe, pour configurer le DNS au niveau du système et le rendre plus résilient. Bien sûr, il est important de savoir comment procéder, car manipuler les fichiers système peut endommager des éléments si vous n’êtes pas prudent. Mais au final, cela peut vous faire gagner du temps et vous éviter des frustrations, surtout si votre méthode DNS actuelle se réinitialise sans cesse ou n’est pas fiable.

Comment corriger les paramètres DNS pour les conserver sur Ubuntu 20.04

Utiliser Netplan pour configurer le DNS de manière permanente

Ubuntu 20.04 utilise Netplan par défaut pour gérer les configurations réseau. L’astuce consiste à remplacer les paramètres DNS directement dans les fichiers YAML de Netplan afin qu’ils restent inchangés en toutes circonstances. Cette méthode est efficace car elle ne repose pas sur les anciennes fonctionnalités de NetworkManager : elle s’effectue au niveau du système.

Sur certaines configurations, vous trouverez vos configurations dans /etc/netplan/01-netcfg.yamlun fichier similaire. Ouvrez-le avec un éditeur de texte comme nanoou vim.

sudo nano /etc/netplan/01-netcfg.yaml

Si vous voyez quelque chose comme :

network: version: 2 renderer: NetworkManager ethernets: enp3s0: dhcp4: yes

Modifiez-le pour inclure les serveurs DNS sous votre interface, comme ceci :

network: version: 2 renderer: networkd ethernets: enp3s0: dhcp4: no addresses: [192.168.1.100/24] gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8, 8.8.4.4] 

En gros, désactivez DHCP sur cette interface (s’il est activé), puis spécifiez directement les serveurs DNS. Ainsi, il ne sera pas remplacé par les mises à jour DHCP ou les rechargements du gestionnaire de réseau.

Enregistrez le fichier ( Ctrl + Odans nano, puis Enter, puis Ctrl + Xpour quitter) et appliquez les paramètres avec :

sudo netplan apply

Remarque : Assurez-vous de remplacer enp3s0par le nom de votre interface. Vous pouvez vérifier votre interface réseau avec ip link.

Attendez-vous à ce que cela fonctionne immédiatement, ou parfois un redémarrage suffit ; car oui, Linux peut être étrange. Sur certaines configurations, le DNS est plus stable si vous désactivez complètement DHCP pour cette interface, puis spécifiez le DNS manuellement. C’est une approche plus « lancer et oublier ».

Alternativement, remplacez DNS dans systemd-resolved

Une autre méthode, plus simple, consiste à modifier systemd-resolved. Il s’agit du résolveur DNS par défaut d’Ubuntu 20.04, et vous pouvez également y définir des serveurs DNS persistants.

Modifier le /etc/systemd/resolved.conffichier :

sudo nano /etc/systemd/resolved.conf

Supprimez le commentaire ou ajoutez des lignes telles que :

[Resolve] DNS=8.8.8.8 8.8.4.4 FallbackDNS=1.1.1.1 1.0.0.1 # Might also want to set DNSStubListener=no to avoid conflicts if you're using stub listener 

Après avoir enregistré, redémarrez le service :

sudo systemctl restart systemd-resolved

Cette méthode met à jour les serveurs DNS au niveau du résolveur système, qui persiste lors des redémarrages et des réinitialisations du réseau — bien mieux que de s’appuyer sur l’interface graphique ou DHCP.

Et si vous voulez vérifier que cela fonctionne, exécutez systemd-resolve --statuset vérifiez les serveurs DNS répertoriés.

Conseil supplémentaire : gardez à l’esprit les fichiers /etc/hosts et /etc/resolv.conf

Parfois, vos problèmes DNS sont dus à des paramètres mis en cache ou conflictuels dans /etc/resolv.conf. Sous Ubuntu 20.04, resolv.confil est généralement lié symboliquement à /run/systemd/resolve/stub-resolv.conf. Si vous remplacez le DNS, assurez-vous que le lien pointe vers votre configuration préférée ou désactivez le stub si vous utilisez un résolveur personnalisé.

Cela peut être vérifié avec :

ls -l /etc/resolv.conf

Si le lien symbolique pointe vers stub-resolv.conf, et que vous gérez le DNS ailleurs, vous souhaiterez peut-être désactiver l’écouteur stub ou supprimer le lien symbolique, mais cela entre dans un territoire plus avancé.

Conseils supplémentaires et dépannage

  • Chaque fois que vous modifiez le DNS, il est bon de vider le cache DNS juste pour être sûr : sudo systemd-resolve --flush-caches. Cela peut aider si les choses ne se mettent pas à jour.
  • Parfois, redémarrer le réseau ou redémarrer l’ordinateur après avoir modifié la configuration peut s’avérer utile. Bien sûr, Linux rend la tâche plus complexe que nécessaire.
  • Si vous utilisez des VPN ou d’autres outils réseau, ceux-ci peuvent remplacer vos paramètres DNS, alors vérifiez si votre nouveau DNS est réellement utilisé.

Conclure

Manipuler les fichiers netplan ou la configuration résolue par systemd peut paraître un peu complexe, mais c’est en réalité assez fiable une fois configuré. Cela vous évite de perdre vos personnalisations DNS après un redémarrage ou une réinitialisation du réseau. Bien que cela soit un peu plus pratique, c’est plus efficace que de perdre son temps à reconfigurer via l’interface graphique à chaque fois.

Résumé

  • Modifiez /etc/netplan/*.yaml pour inclure votre DNS si vous souhaitez des paramètres persistants à l’échelle du système
  • Ou modifiez /etc/systemd/resolved.conf et redémarrez systemd-resolved pour un correctif plus propre et géré par le système.
  • Vérifiez toujours les noms de vos interfaces et assurez-vous que les configurations sont correctes avant de postuler.
  • N’oubliez pas de vider les caches DNS et de redémarrer le réseau si les modifications ne prennent pas effet immédiatement.

Croisons les doigts pour que cela aide