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

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

La mayor parte de la información que veo en línea dice editar /etc/resolv.conf, pero cualquier cambio que haga allí simplemente se anula.

$ cat /etc/resolv.conf 
# 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 127.0.1.1

Parece que 127.0.1.1 es una instancia local de dnsmasq. Los dnsmasqdocumentos dicen editar /etc/resolv.conf. Intenté colocar servidores de nombres personalizados /etc/resolv.conf.d/base, pero los cambios no aparecieron /etc/resolv.confdespués de ejecutar sudo resolvconf -u.

Para su información, no quiero cambiar el DNS por conexión, quiero establecer la configuración de DNS predeterminada para usar en todas las conexiones cuando no se especifique lo contrario.

ACTUALIZAR:

Yo mismo respondí esta pregunta: https://unix.stackexchange.com/a/163506/67024

Creo que es la mejor solución ya que:

  1. Funciona.
  2. Requiere la menor cantidad de cambios y
  3. Todavía funciona junto con el caché DNS de dnsmasq, en lugar de omitirlo.

Respuesta1

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

Ejemplo

NOTA:Antes de comenzar, asegúrese de que esté instalado el siguiente paquete apt install resolvconf.

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

Luego coloque su lista de servidores de nombres así:

nameserver 8.8.8.8
nameserver 8.8.4.4

Finalmente actualizar resolvconf:

$ sudo resolvconf -u

Si echa un vistazo a la página de manual, resolvconfdescribe los distintos archivos en /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 headarchivo:

$ 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.confarchivo resultante para el cual se utilizarán estos archivos. Por lo tanto, también podría haber agregado fácilmente las nameserverlíneas que se describen anteriormente para el basearchivo head.

Referencias

Respuesta2

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

Para probarlo puse

nameserver 8.8.8.8

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

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.confparece

# 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-toolafirma que el servidor DNS está

DNS:             208.67.222.222
DNS:             208.67.220.220

que son los que me proporciona mi router. Por otro lado, buscar una dirección indica que

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

Si estoy en lo cierto, de todo esto concluyo que

  1. resolvonf sólo lee la parte "principal": la parte "base" está controlada de alguna manera por dnsmasq
  2. el servidor dns en realidad se fuerza 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 todavía usa SÓLO el servidor dns proporcionado por dhcp.

En definitiva, 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 añade

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 nm-tool 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 proporcionado por dhcp.

Otra opción (quizás mejor) es usar "anteponer" en lugar de "reemplazar": de esta manera, si el nombre no se resuelve en 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

Respuesta3

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

server=8.8.8.8
server=8.8.4.4

Sin embargo , no tenía un /etc/dnsmasq.confarchivo, ya que lo instala el paquete dnsmasq, pero Ubuntu solo viene con dnsmasq-base. Ejecuté sudo apt-get install dnsmasq, luego edité /etc/dnsmasq.conf, luego sudo service dnsmasq restarty sudo service network-manager restart.

Corrí sudo tail -n 200 /var/log/syslogpara verificar mi syslog y verificar que dnsmasqestaba 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

Respuesta4

  1. Buscar 'Conexión de red'

  2. Abrelo

                        ingrese la descripción de la imagen aquí

  3. Luego seleccione WiFi o Ethernet, o lo que esté usando, y haga clic en editar. Obtendrás esto:

                  ingrese la descripción de la imagen aquí

  4. Seleccione ipv4 en pestañas

  5. Seleccione direcciones solo en el método

  6. Ingrese su nombre DNS a continuación y guárdelo

  7. Ya terminaste

información relacionada