GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo configuro mi DNS cuando se sobrescribe resolv.conf?

Creo que si desea anular el servidor de nombres DNS, simplemente agregue una línea similar a esta en su base archivo bajo resolv.conf.d .

Ejemplo

$ sudo vim /etc/resolvconf/resolv.conf.d/base

Luego ponga su lista de servidores de nombres así:

nameserver 8.8.8.8
nameserver 8.8.4.4

Finalmente actualice resolvconf :

$ sudo resolvconf -u

Si echas un vistazo a la página man de resolvconf describe los diversos archivos bajo /etc/resolvconf/resolv.conf.d/ .

   /etc/resolvconf/resolv.conf.d/base
          File  containing  basic  resolver  information.  The lines in this 
          file are included in the resolver configuration file even when no
          interfaces are configured.

   /etc/resolvconf/resolv.conf.d/head
          File to be prepended to the dynamically generated resolver 
          configuration file.  Normally this is just a comment line.

   /etc/resolvconf/resolv.conf.d/tail
          File to be appended to the dynamically generated resolver 
          configuration file.  To append nothing, make this  an  empty  
          file.   This file is a good place to put a resolver options line 
          if one is needed, e.g.,

              options inet6

Aunque hay una advertencia en la parte superior del head archivo:

$ cat /etc/resolvconf/resolv.conf.d/head
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN

esta advertencia está ahí para que cuando se construyan estos archivos, la advertencia finalmente llegue al resolv.conf resultante archivo que estos archivos se utilizarán para hacer. Así que fácilmente podrías haber agregado el nameserver líneas que se describen arriba para el base archivo, al head archivo también.

Referencias

  • Servidor de nombres dns persistente para ubuntu 14.04
  • ¿Cómo agrego un servidor DNS a través de resolv.conf?

También estoy interesado en esta pregunta y probé la solución propuesta por @sim.

Para probarlo, puse

nameserver 8.8.8.8

en /etc/resolvconf/resolv.conf.d/base y

nameserver 8.8.4.4

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

Luego reinicié la red con

sudo service network-manager restart

El resultado es que /etc/resolv.conf parece

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 8.8.4.4
nameserver 127.0.1.1

y nm-tool establece que el dnsserver es

DNS:             208.67.222.222
DNS:             208.67.220.220

cuáles son los proporcionados por mi enrutador. Por otro lado, cavar una dirección dice que

;; Query time: 28 msec
;; SERVER: 8.8.4.4#53(8.8.4.4)

Si no me equivoco, concluyo de todo esto que

  1. solo la parte "head" es leída por resolvonf:la parte "base" está controlada de alguna manera por dnsmasq
  2. el servidor dns en realidad está obligado a 8.8.4.4 independientemente del servidor proporcionado por dhcp, PERO pierde el almacenamiento en caché proporcionado por dnsmasq, ya que la solicitud siempre se envía a 8.8.4.4
  3. dnsmasq sigue usando SOLO el servidor dns proporcionado por dhcp.

En general, funciona, pero no creo que sea el resultado deseado. Creo que una solución más cercana es la siguiente. Editar

sudo vim /etc/dhcp/dhclient.conf

luego agrega

supersede domain-name-servers 8.8.8.8;

El resultado es el siguiente:resolv.conf contiene solo 127.0.0.1, lo que significa que se invoca el caché dnsmasq y la herramienta nm dice

DNS:             8.8.8.8

lo que significa que si el nombre buscado no está en el caché, entonces se solicita en 8.8.8.8 y no en el servidor provisto por dhcp.

Otra opción (quizás mejor) es usar "anteponer" en lugar de "reemplazar":de esta manera, si el nombre no se resuelve con 8.8.8.8, la solicitud vuelve al otro servidor. De hecho, nm-tool dice

DNS:             8.8.8.8    
DNS:             208.67.222.222
DNS:             208.67.220.220

Descubrí que puedes cambiar los servidores de nombres que dnsmasq usa agregando las siguientes líneas a /etc/dnsmasq.conf :

server=8.8.8.8
server=8.8.4.4

No tenía un /etc/dnsmasq.conf Sin embargo, ya que está instalado por el paquete dnsmasq, pero Ubuntu solo viene con dnsmasq-base. Ejecuté sudo apt-get install dnsmasq , luego editado /etc/dnsmasq.conf , luego sudo service dnsmasq restart y sudo service network-manager restart .

Ejecuté sudo tail -n 200 /var/log/syslog para revisar mi syslog y verificar que dnsmasq estaba usando los servidores de nombres que especifiqué:

Oct 21 23:00:54 mylaptop dnsmasq[8611]: using nameserver 8.8.8.8#53
Oct 21 23:00:54 mylaptop dnsmasq[8611]: using nameserver 8.8.4.4#53

Linux
  1. ¿Cómo establecer parámetros cuando Pipe Bash Script to Bash?

  2. Linux:¿cómo anular un servidor Vm Dns?

  3. ¿Cómo usar el tipo de archivo en Vim?

  4. ¿Cómo establecer el límite de tamaño de carga de archivos en Apache?

  5. ¿Cómo edito resolv.conf?

Cómo configurar Raspberry Pi como un servidor DNS

Cómo configurar servidores de nombres DNS en Ubuntu 18.04

Cómo configurar el servidor web Lighttpd en Ubuntu 18.04

¿Cómo obtener un archivo con el nombre correcto cuando se redirige?

resolv.conf sigue sobrescribiéndose cuando se reinicia dnsmasq, rompiendo dnsmasq

¿Cómo configurar la resolución de DNS en Fedora usando el administrador de red?