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 :

  • En ligne de commandes, dans le fichier /etc/resolv.conf
  • 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 vous pouvez changer la configuration DNS dans ce dernier.

sudo vim /etc/resolv.conf
  • Puis changez la ligne nameserver avec l’adresse IP du serveur DNS. Par exemple pour mettre l’adresse 192.168.1.1 comme DNS :
nameserver 192.168.1.1
  • Ou encore les DNS Google :
nameserver 8.8.8.8
  • Enregistrez les modifications, les nouveaux serveurs DNS sont pris en compte instantanément par Linux
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 dans la configuration de l’interface réseau.

Modifier les DNS dans /etc/systemd/resolved.conf (Ubuntu)

SystemD peut générer la configuration DNS de Linux via le service systemd-resolved.service.
C’est notamment le cas sur la distribution Linux Ubuntu.
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 NetworkManager (Ubuntu/Fedora)

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 configuration DNS avec les serveurs DNS de Google pour l’interface ens33.

auto ens33
iface ens33 inet static
    address 10.0.0.43
    netmask 255.255.255.0
    gateway 10.0.0.138
    dns-search exemple.com
    dns-nameservers 8.8.8.8 4.4.4.4
Changer DNS sur Debian

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)