La mayoría de la información que veo en línea dice que se edite /etc/resolv.conf, pero cualquier cambio que haga 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 dnsmasqdocumentos dicen editar /etc/resolv.conf. Intenté poner servidores de nombres personalizados /etc/resolv.conf.d/base, pero los cambios no aparecieron /etc/resolv.confdespués de la ejecución sudo resolvconf -u.
Para su información, no quiero cambiar el DNS por conexión, quiero establecer la configuración predeterminada de DNS 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:
- Funciona.
- Requiere la menor cantidad de cambios y
- Todavía funciona junto con el caché DNS de dnsmasq, en lugar de omitirlo.

dns=noneen/etc/NetworkManager/NetworkManager.conf(ver detalles en mi respuesta a continuación).Respuestas:
Creo que si desea anular el servidor de nombres DNS, simplemente agregue una línea similar a esta en su
basearchivo debajoresolv.conf.d.Ejemplo
Luego ponga su lista de servidores de nombres de esta manera:
Finalmente actualizar
resolvconf:Si echa un vistazo a la página del manual,
resolvconfse describen los diferentes archivos que se encuentran debajo/etc/resolvconf/resolv.conf.d/.Aunque hay una advertencia en la parte superior del
headarchivo:esta advertencia está ahí para que, cuando se construyan estos archivos, la advertencia finalmente llegue al
resolv.confarchivo resultante que se utilizarán para crear estos archivos. Por lo tanto, también podría haber agregadonameserveralbasearchivo las líneas que se describen anteriormente para el archivohead.Referencias
fuente
baseyresolvconf -ulos ejecuté, los servidores de nombres no se pusieron en resolv.conf - cuando puse los servidores de nombreshead, fueron/run/resolvconf/interface/NetworkManagernslookup google.comy la primera IP en la lista debería ser su nuevo servidor de nombres, si no, lo hizo mal/etc/resolvconf/resolv.conf.d/headsolo se agregaba , no conbase. Confirmó connslookup google.com.resolvconfinstalado. Puedes instalarlo haciendosudo apt-get install resolvconf.También estoy interesado en esta pregunta y probé la solución propuesta @sim.
Para probarlo, pongo
en
/etc/resolvconf/resolv.conf.d/baseyen
/etc/resolvconf/resolv.conf.d/headLuego reinicié la red con
El resultado es que
/etc/resolv.confparecey
nm-toolafirma que el servidor dns soncuáles son las proporcionadas por mi enrutador. Por otro lado, cavar una dirección dice que
Si tengo razón, concluyo de todo esto que
En general, funciona, pero no creo que sea el resultado deseado solicitado. Una solución más cercana, creo, es la siguiente. Editar
Luego añade
El resultado es el siguiente: resolv.conf contiene solo 127.0.0.1, lo que significa que se invoca dnsmasq cache y nm-tool dice
lo que significa que si el nombre buscado no está en la memoria caché, 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 recae en el otro servidor. De hecho, nm-tool dice
fuente
Descubrí que puede cambiar los servidores de nombres que
dnsmasqusa agregando las siguientes líneas a/etc/dnsmasq.conf:Sin embargo, no tenía un
/etc/dnsmasq.confarchivo, ya que está instalado por el paquete dnsmasq, pero Ubuntu solo viene con dnsmasq-base. Corrísudo apt-get install dnsmasq, luego edité/etc/dnsmasq.conf, luegosudo service dnsmasq restartysudo service network-manager restart.Corrí
sudo tail -n 200 /var/log/syslogpara verificar mi syslog y verificar quednsmasqestaba usando los servidores de nombres que especifiqué:fuente
sudo service network-manager restart)Para situaciones de IP estática, la Guía del servidor de Ubuntu dice que cambie el archivo / etc / network / interfaces, que puede verse así:
Cambia las IP 192.168.3.45 192.168.8.10 por las que desea, como 8.8.8.8
https://help.ubuntu.com/14.04/serverguide/serverguide.pdf Página 38
fuente
ifdown eth0; ifup eth0.Abrelo
Luego seleccione WiFi o Ethernet, o lo que sea que esté usando, y haga clic en editar. Obtendrás esto:
Seleccione ipv4 en pestañas
Ingrese su nombre DNS a continuación y guárdelo
Ya terminaste
fuente
sudo service network-manager restart, esperar un poco, verificar connmcli d list | grep 'DNS\|IP-IFACE'. Y haga ping a su cliente interno por su nombre.Una solución rápida y sucia que aún no se mencionó es establecer el indicador inmutable en el
resolv.confarchivo justo después de editarlo.Agregue esto y guarde:
Entonces:
Eso debería hacer el truco. También hago esto en mi sistema.
fuente
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.confen 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.confPERO 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 DNSchattr +i /etc/resolv.confpero 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
Actualiza la configuración
Deshabilitar resolvconf
2. Servicio Dnsmasq:
Archivos de configuración
Actualiza la configuración
3. Administrador de red:
Archivos de configuración
Deshabilitar DNS
Habilitar DNS
Usar servicio resuelto
Use resolvconf
Actualiza la configuración
4. Interfaces de red:
Archivos de configuración
Actualizar la configuración
5. Cliente DHCP:
Archivos de configuración
Actualizar la configuración
6. Servicio de Rdnssd:
Deshabilitar rdnssd
7. Servicio resuelto:
Deshabilitar resuelto
8. Netconfig:
Archivos de configuración
Deshabilitar netconfig
Actualizar la configuración
Configuración del servidor DNS
Ejemplo de una
/etc/resolv.confconfiguraciónfuente
Mi problema era un poco diferente, quería anular los servidores DNS de mis enrutadores. Encontré este enlace de Ubuntu: https://wiki.ubuntu.com/OverrideDNSServers
Dice: si desea anular la configuración de DNS que le proporcionó un servidor DHCP, abra
y agregue la siguiente línea:
reemplazando
<dns_ip_address*>artículos con el contenido apropiado.fuente
dhcp3carpeta? Tengo Xubuntu 17.10, ¿se ha movido a/etc/dhcpsimplemente?Tal vez me falta algo, pero de acuerdo con las instrucciones de configuración en https://help.ubuntu.com/14.04/serverguide/network-configuration.html, todo lo que debe hacer es actualizar lo siguiente. No estoy ejecutando un proxy, solo una máquina detrás de un firewall y DNS local (el ejemplo muestra Google, pero configúrelo en lo que necesite).
Defecto:
ACTUALIZADO:
Reinicia, si puedes.
fuente
Intenta agregar
dns-nameservers XXX.XXX.XXX.Xa tu/etc/networking/interfacesarchivo.fuente
Algunas de las respuestas aquí funcionan bien. Sin embargo, yo no estaba contento con el hecho de que tengo que ir manualmente a través de archivos de configuración sólo para establecer la "adecuada"
DNS, que yo ya estoy recibiendo másDHCPconNetworkManager.Investigué un poco y noté que el
/etc/resolv.confarchivo es en realidad un enlace y está apuntando/run/systemd/resolve/stub-resolv.conf. Después de experimentar un poco, parece que el/run/systemd/resolve/directorio contiene otro archivo llamadoresolv.confque ya contiene la configuración que recibió a través deDHCP. Entonces, en lugar de tener que sobrescribir / crear manualmente los archivos de configuración/etc/, simplemente puede volver a vincular/etc/resolv.confpara apuntar al/run/systemd/resolve/resolv.confarchivo y todo debería estar bien:Ahora debería poder editar la configuración incluso desde Network Manager en Gnome. :)
No estoy seguro de si esto funcionará en ubuntu anteriores, pero lo hace en Ubuntu 17.10.
fuente
systemd-resolve --flush-cacheel archivo original vinculado aparentemente seEDITAR MAYO 6,2016
He escrito un script para actualizar todas las configuraciones para las conexiones del sistema en el
/etc/Network-Manager/system-connections/directorio. La GUI que usa para editar conexiones individuales edita un archivo en particular en ese directorio. El script actualiza todos los archivos, solo busca a aquellos que no tienen dns configurado con grep y lo configura con awk.Dado que el acceso a esos archivos requiere
sudoacceso, ejecute este script consudoy luego, reinicie el administrador de redGuión en acción:
POST ORIGINAL Algunos usuarios aquí señalaron que DNS está controlado de alguna manera por
dnsmasq. Eso es de hecho cierto. Me he enfrentado a un problema algo menor, donde no importa cómo cambiéheadobodyen qué lugar/etc/resolvconf/resolv.conf.d, mi computadora en realidad no podía acceder internado por nombre de dominio, solo funcionaba con direcciones IP.Lo que hice fue editar el
/etc/NetworkManager/NetworkManager.confarchivo. Originalmente, se dijodns=dnsmasqpero lo cambió a:dns=208.67.222.222. Aunque de esta manera,nm-toolno menciona 208.67.222.222, todavía pude usar nombres de dominio, no solo direcciones IP.Así
NetworkManager.confes como se ve mi archivo ahora:NOTA: Para obtener más detalles sobre mi problema y esta solución, consulte mi publicación en askubuntu.com .
ACTUALIZACIÓN # 1
Al regresar a casa desde la universidad hoy, descubrí que no podía conectarme a la red WiFi de mi casa. He leído un poco
man NetworkManager.confy resulta quedns=en[main]realidad es una línea para complementos, por lo que la línea endns=dnsmasqrealidad está agregando el complemento dnsmasq al NetworkManager, aparentemente.Entonces mi solución aún funcionó, solo que no como esperaba. Aquí hay un extracto de la página del manual:
Entonces, al configurar
dns=208.67.222.222, es posible que, básicamente, haya evitado que NetworkManager use ese complemento, que de lo contrario usaría el servidor DNS local (que aparentemente no funciona).fuente
Hay dos métodos
Método 1
El servidor DNS a utilizar se puede cambiar actualizando el
headarchivo enresolv.conf.dy luego correr
Lo anterior generará un
resolv.confarchivo genérico en el/etcdirectorio. Todas sus solicitudes de resolución se enviarán al servidor de nombres mencionado anteriormente. ResueltoSin embargo, hay implicaciones para esto. Cuando se utiliza
resolvconfpara consultar directamente1.1.1.1las resoluciones de dirección, el poder de almacenamiento en caché proporcionado por dnsmasq se ha ido. Cada solicitud irá a1.1.1.1Método 2
Si no desea que suceda lo anterior y use dnsmasq para resoluciones DNS, consulte esta respuesta. La respuesta se describe simplemente aquí.
Agregue el siguiente contenido en el
/etc/dnsmasq.confarchivo.Luego reinicie el servicio dnsmasq
Las cosas funcionarán bien. Resuelto
fuente
La forma fácil de cambiar DNS:
Si surgen problemas, instale
nano:luego ..
dns-nameserversdns-nameservers 199.85.126.10 199.85.127.10Espero que esta sea la mejor manera, por cierto lo hice así en un VPS.
fuente
en la raíz:
dns=dnsmasqsobre/etc/NetworkManager/NetworkManager.confsupersede domain-name-servers 4.2.2.1,4.2.2.3,4.2.2.5,4.2.2.4,4.2.2.1,4.2.2.2;al final de/etc/dhcp/dhclient.confsudo service network-manager restartA continuación se realizan los cambios que se muestran arriba:
Espere 7/10 segundos para finalizar el proceso de reinicio, verifique su configuración con "nslookup nist.gov". Funciona bien en Ubuntu LTS 14.04.
fuente
NB: Como la mayoría de las respuestas, esta supone el uso de NetworkManager. Sin embargo, a diferencia de la mayoría de las otras respuestas, no asume el uso de
resolvconf,dhclientni nada más, tenga cuidado de que puedan hacerse cargo, sin embargo (ver actualización).Dado el número de puntos de vista de esta pregunta, es bastante increíble que esta solución de 8 caracteres aún no se haya publicado: según
man NetworkManager.conf,Por lo tanto, agregue
en la
[main]sección de/etc/NetworkManager/NetworkManager.confluego reinicie NetworkManager y ya no se modificará/etc/resolv.conf.Tenga en cuenta que la configuración
rc-manager=unmanageddebe ser equivalente adns=none, y esa configuraciónrc-manager=symlinkjunto con tener/etc/resolv.confcomo enlace simbólico puede ser una mejor idea (lea la página de manual mencionada anteriormente).Actualización:
Después de que NetworkManager dejó de sobrescribir
/etc/resolv.conf, pensé quedhcpcdya estaba reemplazando/etc/resolv.confpor un archivo vacío inútil en el arranque. La página de manual dedhcpcd.confayuda, es suficiente para agregaren tu
dhcpcd.conf(el mío está adentro/etc/dhcpcd.conf).fuente
En mi servidor Linux centos7, la mejor manera de cambiar esta opción era usar
comando que no se sugiere en ninguna respuesta aquí. Puede editar servidores de nombres en esta herramienta y cuando cambie las opciones de networkmanager desde esta utilidad, se aplicarán automáticamentenmtui/etc/resolv.confdespués del reinicio. Aquí puedes encontrar más información .fuente