Menu Fermer

Comment changer la configuration des serveurs DNS sur Linux

Comment configurer un serveur DNS sous Linux ?
En effet, il arrive que l’on ait besoin de modifier les serveurs de noms dans Linux.

DNS (Domain Name Server) ou le serveur de noms de domaine est un protocole standard qui aide les utilisateurs d’Internet à découvrir des sites Web à l’aide d’adresses lisibles par l’homme. Si le DNS de votre appareil est mal configuré ou si vous souhaitez le changer pour contourner un blocage de sites Web, cet article expliquera exactement comment le faire.

Dans ce tutoriel, nous allons apprendre à changer les serveurs DNS sur Linux.

Comment changer la configuration des serveurs DNS sur Linux

Comment changer la configuration des serveurs DNS sur Linux

Dans Linux, la modification de la configuration des serveurs DNS peut se faire à plusieurs niveaux :

  • Dans la configuration des interfaces réseaux (qui peut se trouver à différents emplacements systèmes)
  • Dans systemd
  • via le package resolvconf

Modifier les DNS dans /etc/resolv.conf

Le fichier /etc/resolv.conf est un fichier texte qui stocke les adresses des serveurs DNS du système.
Ainsi pour connaître les serveurs DNS de Linux, il vous suffit de vérifier le contenu.
Vous pouvez par exemple faire cela avec la commande cat :

cat /etc/resolv.conf
Cette modification des serveurs DNS est temporaire et sera perdu au prochain redémarrage.
Le fichier /etc/resolv.conf pouvant être regénéré à chaque démarrage du système.

Modifier les DNS dans /etc/systemd/resolved.conf

SystemD peut générer la configuration DNS de Linux via le service systemd-resolved.service.
Il est donc possible d’imposer des serveurs DNS dans ce dernier.
Pour cela :

  • Editez le fichier /etc/systemd/resolved.conf puis modifiez la directive DNS pour y inscrire le serveur DNS souhaité.
[Resolve]
DNS=8.8.8.8
  • Ensuite relancez le service :
sudo systemctl start systemd-resolved.service

avec resolvconf

Vous pouvez installer le package appelé résolvconf pour gérer le DNS. Ce package agit comme un médiateur entre les programmes qui fournissent des informations DNS et des applications qui utilisent des informations DNS.

Lorsque ce package est installé, il autogenère les paramètres DNS et remplace les informations dans /etc/resolv.conf avec ses propres paramètres. Par conséquent, si nous modifions les paramètres DNS par défaut dans ce programme, nos paramètres DNS souhaités seront ceux qui sont écrits dans /etc/resolv.conf à chaque fois, ce qui le rend permanent.

Pour installer resolvconf sur Debian/Ubuntu :


sudo apt install resolvconf

Maintenant, nous voulons placer notre DNS dans le fichier d’en-tête des paramètres qui seront auto-générés.
Pour ce faire, ouvrir /etc/resolvconf/resolv.conf.d/head et ajouter les serveurs de noms comme nous l’avons fait pour résolv.conf

vim /etc/resolvconf/resolv.conf.d/head

Modifier les DNS dans /etc/NetworkManager/

Le démon de NetworkManager est un service qui gère la configuration des interfaces réseaux comme Ethernet, Wi-Fi et les appareils à large bande mobile.
Il est utilisé par les distributions Linux Ubuntu ou Fedora.
La configuration des DNS peut se faire aussi dans ce dernier et notamment dans le /etc/NetworkManager/NetworkManager.conf ou dans un sous-officier avec le nom de l’interface se trouvant dans /etc/NetworkManager/system-connections

Voici un exemple de fichier /etc/NetworkManager/system-connections/eno1.
Les serveurs DNS sont à modifier dans l’entrée dns=8.8.8.8;.

[connection]
id=eno1
uuid=4518f0a6-0500-4848-a849-85c0c6c389b6
type=802-3-ethernet
permissions=
secondaries=

[802-3-ethernet]
duplex=full
mac-address=XX:XX:XX:XX:XX:XX

[ipv4]
method=manual
addresses1=192.168.10.251;24;192.168.10.1;

dns=8.8.8.8;

[ipv6]
addr-gen-mode=stable-privacy
dns-search=
method=auto

Configurer les DNS dans /etc/networking/interfaces (Debian)

Les serveurs DNS peuvent être déclarées dans la configuration des interfaces réseaux.
Sur les distributions Linux comme Debian, éditez le fichier /etc/networking/interfaces
Puis modifier l’adresse des serveurs de noms par la directive dns-nameservers.

Voici un exemple de serveurs DNS avec 192.168.3.45 192.168.8.10 pour l’interface eth0

iface eth0 inet static
    address 192.168.3.3
    netmask 255.255.255.0
    gateway 192.168.3.1
    dns-search exemple.com
    dns-nameservers 192.168.3.45 192.168.8.10

Une fois la configuration DNS modifiée, relancez le service networking :

sudo /etc/init.d/networking restart

Ou de prendre en compte la modification est de démonter puis remonter l’interface réseau :

sudo ifdown eth0 && sudo ifup -v eth0

Comment connaître les serveurs DNS de Linux

Enfin si vous désirez vérifier la prise en compte des modifications de serveurs de noms, suivez ce tutoriel :

Comment connaitre ses DNS (Windows, Linux et Android)