¿Cómo configuro mis DNS cuando se sobrescribe resolv.conf?
La mayor parte de la información que veo en Internet dice que hay que editar /etc/resolv.conf
, pero cualquier cambio que hago allí 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 documentos de dnsmasq
dicen que hay que editar /etc/resolv.conf
. Traté de poner servidores de nombre personalizados en /etc/resolv.conf.d/base
, pero los cambios no aparecieron en /etc/resolv.conf
después de correr sudo resolvconf -u
.
Para que sepas, no quiero cambiar el DNS por cada conexión, quiero establecer la configuración DNS por defecto para usarla en todas las conexiones cuando no se especifique lo contrario.
UPDATE:
Yo mismo he respondido a esta pregunta: https://unix.stackexchange.com/a/163506/67024
Creo que es la mejor solución desde:
- Funciona.
- Requiere la menor cantidad de cambios y
- Todavía funciona en conjunto con el cache DNS de dnsmasq's, en lugar de evitarlo.
283
3
Creo que si quieres anular el servidor de nombres DNS, sólo tienes que añadir una línea similar a esta en tu archivo
base
bajoresolv.conf.d
.Ejemplo
Entonces pon tu lista de servidores de nombres así:
Por último, actualice
resolvconf
:Si echas un vistazo a la página de manual de
resolvconf
se describen los distintos archivos bajo/etc/resolvconf/resolv.conf.d/
.Aunque hay una advertencia en la parte superior del archivo
head
:esta advertencia está ahí para que cuando se construyan estos archivos, la advertencia se introduzca finalmente en el archivo resultante
resolv.conf
que se utilizará para crear estos archivos. Así que usted podría fácilmente haber añadido las líneasnameserver
que se describen más arriba para el archivobase
, al archivohead
también.Referencias
Yo también estoy interesado en esta cuestión y he probado la solución que propone @sim.
Para probarla, he puesto
en
/etc/resolvconf/resolv.conf.d/base
yen
/etc/resolvconf/resolv.conf.d/head
Luego reinicié la red con
El resultado es que
/etc/resolv.conf
tiene el siguiente aspectoy
nm-tool
afirma que los dnsserver sonque son los que proporciona mi router. Por otra parte cavar una dirección dice que
Si estoy en lo cierto, concluyo de todo esto que
En definitiva, funciona pero no creo que sea el resultado que se pide. Una solución más cercana creo que es la siguiente. Editar
y luego añadir
El resultado es el siguiente: resolv.conf contiene sólo 127.0.0.1, lo que significa que se invoca la caché de dnsmasq y nm-tool dice
lo que significa que si el nombre buscado no está en la caché, entonces se pide en 8.8.8.8 y no en el servidor proporcionado por dhcp.
Otra opción (tal vez mejor) es usar "prepend" en lugar de "supersede": de esta manera, si el nombre no es resuelto por 8.8.8.8, entonces la solicitud recae en el otro servidor. De hecho, nm-tool dice
Prueba a añadir
dns-nameservers XXX.XXX.XXX.X
en tu archivo/etc/networking/interfaces
.