Configuration DNS sous Linux
L' utilisation du DNS sur linux est fait sur un ensemble de routines dans la bibliothèque C qui donnent accès au nom de domaine Internet (DNS). Le fichier de configuration du résolveur ( resolv.conf
) contient des informations lues par les routines du résolveur lors de leur premier appel par un processus. En bref, chaque processus demandant au DNS lira /etc/resolv.conf
la bibliothèque. Le NSS est superposé à cela et est configuré par /etc/nsswitch.conf
.
Les configurations Linux DNS sont situées dans le fichier /etc/resolv.conf
MAIS il existe un certain nombre de programmes / services qui souhaitent gérer et gérer automatiquement le fichier de configuration DNS /etc/resolv.conf
. Dans certaines situations, vous souhaiterez peut-être gérer ce fichier vous-même. Chaque programme / service gérant le DNS a ses propres fichiers de configuration tels que /etc/dnsmasq.conf
(pour le service dnsmasq) et ajoute la configuration DNS à la modification de la connexion et / ou à d'autres événements ... une solution rapide consiste à verrouiller le fichier de configuration DNS, chattr +i /etc/resolv.conf
mais cela n'est pas recommandé. dans certains cas, une meilleure solution consiste à configurer correctement tous les programmes / services utilisant le DNS, comme (dnsmasq / network-manager / resolvconf / etc.)
Reprendre le contrôle du DNS
Voici une liste exhaustive des configurations permettant de récupérer le contrôle de resolv.conf et d'éviter de l'écraser ( comment désactiver / configurer le DNS depuis un emplacement autre que resolv.conf ). Notez que resolvconf est un programme indépendant de resolv.conf, également En fonction de votre système / configuration, il est possible que vous n'ayez pas un ou plusieurs des programmes listés ici.
1. Resolvconf:
Fichiers de configuration
cat /etc/resolvconf/resolv.conf.d/head
nameserver 8.8.4.4
cat /etc/resolvconf/resolv.conf.d/base
nameserver 8.8.4.4
Mettre à jour la configuration
sudo resolvconf -u
Désactiver resolvconf
systemctl disable --now resolvconf.service
2. Service Dnsmasq:
Fichiers de configuration
cat /etc/dnsmasq.conf
server=1.1.1.1
server=8.8.4.4
Mettre à jour la configuration
sudo systemctl restart dnsmasq.service
3. Gestionnaire de réseau:
Fichiers de configuration
/etc/NetworkManager/*
Désactiver le DNS
$ cat /etc/NetworkManager/conf.d/no-dns.conf
[main]
dns=none
Activer le DNS
$ cat /etc/NetworkManager/conf.d/dns.conf
[main]
dns=default
[global-dns]
searches=example.com
[global-dns-domain-*]
Utiliser le service résolu
$ cat /usr/lib/NetworkManager/conf.d/resolved.conf
[main]
dns=systemd-resolved
Utilisez resolvconf
$ cat /usr/lib/NetworkManager/conf.d/resolvconf.conf
[main]
rc-manager=resolvconf
Mettre à jour la configuration
systemctl restart NetworkManager.service
4. Interfaces réseau:
Fichiers de configuration
$ cat /etc/network/interfaces
#nameservers
# or dns-search like so
# dns-search x.y
dns-nameservers 4.4.4.4 8.8.8.8
Mettre à jour la configuration
reboot
5. Client DHCP:
Fichiers de configuration
$ cat /etc/dhcp3/dhclient.conf
supersede domain-name-servers <dns_ip_address1>,<dns_ip_address2>;
Mettre à jour la configuration
reboot
6. Service Rdnssd:
Désactiver rdnssd
systemctl disable --now rdnssd.service
7. Service résolu:
Désactiver résolu
systemctl disable --now systemd-resolved.service
8. Netconfig:
Fichiers de configuration
/etc/sysconfig/network/config
Désactiver netconfig
cat /etc/sysconfig/network/config
NETCONFIG_DNS_POLICY=""
Mettre à jour la configuration
reboot
Configuration du serveur DNS
Exemple de /etc/resolv.conf
configuration
#Cloudflare
nameserver 1.0.0.1
#Google
#nameserver 8.8.8.8
#nameserver 8.8.4.4
#Cloudflare
#nameserver 1.1.1.1
#Classic Config
#nameserver 192.168.1.1
#search lan