Configuración de DNS en Linux
El uso de DNS en Linux se realiza a través de un conjunto de rutinas en la biblioteca C que proporcionan acceso al Sistema de nombres de dominio de Internet (DNS). El archivo de configuración de resolución ( resolv.conf
) contiene información que las rutinas de resolución leen la primera vez que un proceso las invoca. En resumen, cada proceso que solicite DNS se leerá /etc/resolv.conf
en la biblioteca. El NSS se superpone en capas y está configurado por /etc/nsswitch.conf
.
La configuración de DNS de Linux se encuentra en el archivo /etc/resolv.conf
PERO hay una serie de programas / servicios que desean administrar y manejar automáticamente el archivo de configuración de DNS en /etc/resolv.conf
. En algunas situaciones, es posible que desee administrar este archivo usted mismo. Cada programa / servicio que administra DNS tiene sus propios archivos de configuración como /etc/dnsmasq.conf
(para el servicio dnsmasq) y agrega la configuración de DNS en el cambio de conexión y / o en otros eventos ... una solución rápida es bloquear el archivo de configuración de DNS chattr +i /etc/resolv.conf
pero esto no es recomendable en cierto caso, una mejor solución es configurar correctamente todos los programas / servicios usando el DNS como (dnsmasq / network-manager / resolvconf / etc.)
Recuperando el control de DNS
Aquí hay una lista exhaustiva de configuraciones para recuperar el control de resolv.conf y evitar que se sobrescriba ( cómo deshabilitar / configurar DNS desde otra ubicación que no sea resolv.conf ) tenga en cuenta que resolvconf es un programa independiente de resolv.conf, también dependiendo de su sistema / configuración, es posible que no tenga uno o muchos de los programas enumerados aquí.
1. Resolvconf:
Archivos de configuración
cat /etc/resolvconf/resolv.conf.d/head
nameserver 8.8.4.4
cat /etc/resolvconf/resolv.conf.d/base
nameserver 8.8.4.4
Actualiza la configuración
sudo resolvconf -u
Deshabilitar resolvconf
systemctl disable --now resolvconf.service
2. Servicio Dnsmasq:
Archivos de configuración
cat /etc/dnsmasq.conf
server=1.1.1.1
server=8.8.4.4
Actualiza la configuración
sudo systemctl restart dnsmasq.service
3. Administrador de red:
Archivos de configuración
/etc/NetworkManager/*
Deshabilitar DNS
$ cat /etc/NetworkManager/conf.d/no-dns.conf
[main]
dns=none
Habilitar DNS
$ cat /etc/NetworkManager/conf.d/dns.conf
[main]
dns=default
[global-dns]
searches=example.com
[global-dns-domain-*]
Usar servicio resuelto
$ cat /usr/lib/NetworkManager/conf.d/resolved.conf
[main]
dns=systemd-resolved
Use resolvconf
$ cat /usr/lib/NetworkManager/conf.d/resolvconf.conf
[main]
rc-manager=resolvconf
Actualiza la configuración
systemctl restart NetworkManager.service
4. Interfaces de red:
Archivos de configuración
$ cat /etc/network/interfaces
#nameservers
# or dns-search like so
# dns-search x.y
dns-nameservers 4.4.4.4 8.8.8.8
Actualizar la configuración
reboot
5. Cliente DHCP:
Archivos de configuración
$ cat /etc/dhcp3/dhclient.conf
supersede domain-name-servers <dns_ip_address1>,<dns_ip_address2>;
Actualizar la configuración
reboot
6. Servicio de Rdnssd:
Deshabilitar rdnssd
systemctl disable --now rdnssd.service
7. Servicio resuelto:
Deshabilitar resuelto
systemctl disable --now systemd-resolved.service
8. Netconfig:
Archivos de configuración
/etc/sysconfig/network/config
Deshabilitar netconfig
cat /etc/sysconfig/network/config
NETCONFIG_DNS_POLICY=""
Actualizar la configuración
reboot
Configuración del servidor DNS
Ejemplo de una /etc/resolv.conf
configuración
#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