¿Cómo agrego un servidor DNS a través de resolv.conf?

192

¿Es /etc/resolv.conf inútil en Ubuntu 12.04 LTS (Precise Pangolin)?

Veo que la información del servidor DNS está almacenada en NetworkManager ahora. La herramienta de línea de comandos nmcli puede enumerar eso para usted.

Si deseo agregar un servidor más DNS , lo agregaré a /etc/resolv.conf usando el resolvconf paquete de ayuda?

    
pregunta PnotNP 03.05.2012 - 02:00

18 respuestas

130

Si /etc/resolv.conf contiene nameserver 127.0.0.1 , entonces agregar entradas a /etc/resolvconf/resolv.conf.d/tail realmente no servirá de nada.

Si está utilizando NetworkManager, en su lugar, debe agregar estáticamente las direcciones del servidor de nombres a través del indicador de red : Editar conexiones ... | Editar ... | Configuración de IPv4 | Servidores DNS adicionales .

Si realmente desea agregar más entradas a /etc/resolv.conf , cree un /etc/resolvconf/resolv.conf.d/tail y agréguelas allí.

Al igual que con cada versión de Ubuntu, se recomienda leer las Notas de versión de Ubuntu, disponibles aquí:

Las secciones de escritorio e infraestructura común contienen un enlace a

  • enlace que cubre los cambios en la infraestructura de DNS en 12.04.
respondido por el stgraber 03.05.2012 - 02:21
128

Encontré otro enfoque aquí que implica agregar una línea como la siguiente a /etc/dhcp/dhclient.conf :

prepend domain-name-servers x.x.x.x, y.y.y.y;

Del mismo modo, encontré un tercer enfoque aquí que implica agregar líneas a /etc/network/interfaces :

auto eth0
iface eth0 inet static
    . . .
    dns-nameservers 8.8.8.8 8.8.4.4

Actualización: aquí está la documentación oficial para el tercer enfoque.

    
respondido por el Randall Cook 09.05.2012 - 00:48
84

Parece que estás hablando del paquete resolvconf.

Instale el paquete resolvconf .

Ejecutar

cd /etc/resolvconf/resolv.conf.d
sudo cp -p head head.orig  #backup copy, always do this
sudo nano head

La parte superior del archivo es una advertencia aterradora. El archivo /etc/resolv.conf se genera automáticamente a partir del contenido de este archivo; la advertencia está allí, por lo que se pondrá en /etc/resolv.conf cuando se genere /etc/resolv.conf. Al final del archivo, agregue

nameserver <ip_of_nameserver>

Presione Ctrl x y responda sí para guardar el archivo. Para finalizar, regenere /etc/resolv.conf para que los cambios se apliquen ahora mismo:

sudo resolvconf -u

Luego verifique el contenido de /etc/resolv.conf para ver que la línea que ha agregado ya está allí. Además, seguirá allí la próxima vez que se inicie la máquina o se reinicie el servicio de red, lo que ocurra primero.

    
respondido por el Azendale 01.07.2011 - 01:41
29

A continuación, le mostraré la mejor forma que he encontrado desde que ejecuto la edición Ubuntu Server y uso ifup en lugar de NetworkManager.

En realidad, para mí lo hicieron más fácil :) al ponerlo todo en el archivo / etc / network / interfaces. Las mismas configuraciones que habría escrito en resolv.conf ahora pueden estar en el mismo archivo que las configuraciones de su adaptador de red como en el siguiente ejemplo:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
        address 192.168.1.2
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.1.255
        gateway 192.168.1.1
        dns-nameservers 75.75.75.75 75.75.76.76
        dns-search local

Espero que esto ayude y lo haga más fácil, ya que para mí, ahora podemos crear direcciones IP estáticas y agregar dominios de nombres y DNS en un solo archivo:)

    
respondido por el Joseph Mituzas 24.05.2012 - 00:55
16

Mine ejecuta Ubuntu Server 12.04. Realicé los siguientes cambios y reinicié el servidor (normalmente esto se puede hacer bajando la interfaz de red, es decir, ifdown eth0 o ifup eth0 ).

En el archivo /etc/resolvconf/resolv.conf.d/base agregué las siguientes entradas:

nameserver 8.8.8.8
nameserver 8.8.4.4

¡Espero que lo anterior ayude!

    
respondido por el Don Chai 19.03.2013 - 06:56
11

Puede usar NetworkManager como se indica en la respuesta de Frank, pero si prefiere editar manualmente /etc/resolv.conf , puede hacerlo eliminándolo (en realidad es un enlace simbólico) y luego creando un nuevo archivo simple con el contenido que desea. La utilidad resolvconf solo escribe en el archivo /run/resolvconf/resolv.conf .

    
respondido por el Jase 04.05.2012 - 16:38
8

Nota: Esta respuesta fue para una versión de la Pregunta antes de la fusión, bastante diferente, con un enfoque solo en el servidor de nombres deseado previamente pendiente.

Esto funciona antes de 12.04:

Editar /etc/dhcp3/dhclient.conf y agregar:
prepend domain-name-servers 127.0.0.1;

(De hecho, esta línea ya está presente, todo lo que necesitas hacer es des-comentarla).

    
respondido por el belacqua 06.03.2011 - 21:26
6

resolvconf es inútil. Estoy en un servidor Linux y mi dirección IP es estática y mi DNS son estáticos. No necesito resolvconf o NetworkManager .

Manteniéndolo simple es mi política cuando trabajo en un servidor. Mientras menos complejidad, más fácil será administrar / arreglar cuando las cosas se rompan.

Así que hice aptitude purge resolvconf y me aseguré manualmente de que /etc/resolv.conf no sea un enlace simbólico y acabara de crear una estática archivo. En caso de que un programa intente cambiar el archivo, hice chattr +i (inmutable) a /etc/resolv.conf como medida de precaución.

    
respondido por el Mark 16.10.2012 - 17:41
4

La mayoría de lo anterior asume que tienes un sistema prístino, pero la realidad es que has estado instalando diferentes clientes dhcp, deshabilitado el administrador de red en ciertas versiones anteriores de Ubuntu, etc. Puede valer la pena saber lo siguiente. He estado usando dnsmasq por un tiempo, pero lo desinstalé. Actualmente mi sistema tiene los siguientes contenidos de /etc/resolv.conf (que es un enlace simbólico a /run/resolvconf/resolv.conf en mi sistema):

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

No importa con qué frecuencia ejecuto sudo resolvconf -u o sudo dpkg-reconfigure resolvconf , no actualicé el servidor de nombres a los que configuré en NetworkManager. El resolvconf de información que utiliza el NetworkManager estaba presente:

cat /run/resolvconf/interface/NetworkManager  
nameserver 8.8.4.4
nameserver 8.8.8.8

Sin embargo, resulta que si hay varios archivos en este directorio, es posible que este archivo no se use en absoluto. El culpable fue un archivo no eliminado con la desinstalación de dnsmasq:

cat /run/resolvconf/interface/lo.dnsmasq                        
nameserver 127.0.0.1

Simplemente eliminando este archivo (y ejecutando sudo resolvconf -u después) resolvió mis problemas de DNS:

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 8.8.4.4
nameserver 8.8.8.8 

Espero que esto ayude a otros a depurar (las complejas interacciones entre todas estas diferentes herramientas de red) también. Si usa resolvconf , asegúrese de ejecutar ls /run/resolvconf/interfaces para ver qué hay allí.

    
respondido por el Anne van Rossum 27.12.2014 - 13:54
2

Puede editar la conexión "AUTO ETH0" o el nombre que use para conectarse en NM. Puede hacer esto haciendo clic derecho en NM y seleccionando "Editar conexiones ...". En la pestaña IPv4, puede seleccionar "Direcciones automáticas (DHCP) solamente" como "Método" y NM le permitirá configurar las direcciones del servidor de nombres de forma manual, incluso las direcciones se entregan a través de DHCP.

    
respondido por el Frank Barcenas 04.05.2012 - 16:29
2

Acabo de eliminar un enlace en /etc/resolv.conf y he creado un archivo regular con las direcciones de los servidores de nombres. Funciona, y no veo ninguna razón para usar esa construcción bastante extraña que los desarrolladores de Ubuntu han creado.

    
respondido por el Ivan 19.03.2013 - 07:34
1

Lo arreglé cambiando el orden de las fuentes. Moví la fuente dns antes de mdns en /etc/nsswitch.conf :

hosts: files dns mdns4_minimal [NOTFOUND=return] mdns4

Puede mantener su configuración y seguir usando el servidor de almacenamiento en caché local de esta manera.

    
respondido por el Dan B 13.10.2012 - 03:47
1

Qué tal:

  

sudo dpkg-reconfigure resolvconf

Antes de eso, use el Administrador de red para cambiar la dirección DNS y cambie el Método a

  

Direcciones automáticas (DHPC) solo

Luego ejecuta el comando de arriba y reinicia. Eso hizo la solución para mí.

    
respondido por el Adige72 03.02.2013 - 21:40
1

Agregando mi bit a la lista ya larga, aquí hay otra forma (probado el 12.04):

Edite /run/resolvconf/interface/NetworkManager para que se ajuste a sus necesidades. Aquí hay un ejemplo:

search foobar.com example.com
nameserver 192.168.1.1

Luego, como se indicó para la mayoría de los otros ejemplos, haz un sudo resolvconf -u . Ahora verá que su resolv.conf tiene este aspecto:

nameserver 192.168.1.1
nameserver 127.0.0.1
search foobar.com example.com

Todavía no me gusta la forma en que se implementa ahora (parece que Ubuntu necesita un servicio para cada foo que hace), y preferiría un resolv.conf claro para seguro. Pero este enfoque parece ser el mejor compromiso para mí hasta ahora. El agregado "localhost-NS" no debería doler demasiado.

    
respondido por el Izzy 28.09.2013 - 23:32
1
vi /etc/network/interfaces


This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The primary network interface
allow-hotplug eth0


# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
#auto eth0         <<----- change this comment with the #
iface eth0 inet dhcp
    
respondido por el Roy Rogers 04.07.2014 - 12:33
1

Esta es una pregunta muy popular, con una colección de respuestas estándar posibles, todas las cuales, IMO, son bastante hacky. Por mi parte, siempre tuve problemas para lograr que Ubuntu respetara la configuración DNS que configuré en NetworkManager, en particular estableciendo servidores DNS estáticos con "direcciones automáticas (DHCP) solamente", y hoy finalmente descubrí qué era REALMENTE INCORRECTO.

El problema está en la interacción entre resolvconf y NetworkManager. resolvconf tiene este archivo llamado /etc/resolvconf/interface-order . Al menos en mis sistemas, NetworkManager no está en este archivo (excepto que está cubierto por la * comodín al final). Entonces, lo que sucede es que el informe más reciente de dhclient para resolvconf tiene prioridad sobre cualquier cosa que NetworkManager tenga que decir.

Por lo tanto, al menos en mi caso, la respuesta real fue agregar

NetworkManager

en o cerca de la parte superior de /etc/resolvconf/interface-order .

(Sí, sé que mucha gente solo dice "desinstalar resolvconf", lo cual me parece una mala idea en sí misma. Pero más que eso, al menos astutamente y xenial consideran que resolvconf es una parte vital del sistema [ es decir, ubuntu-minimal depende de ello], por lo que sería difícil mantener su sistema en un estado consistente y actualizado sin resolvconf.)

A petición puedo proporcionar más detalles sobre cómo lo descubrí. En pocas palabras, reemplacé el ejecutable resolvconf con un envoltorio de shell que volcó sus argumentos, entrada, salida y stderr a los archivos; y agregó set -x a los scripts de actualización de resolvconf.

    
respondido por el Steven Collins 31.05.2016 - 20:32
0

Otra forma es definir los servidores dns específicos de Docker en:

/etc/docker/daemon.json

Si no tiene ese archivo, simplemente créelo:

{
    "dns": ["10.0.0.2", "8.8.8.8"]
}

Fuente: enlace

Además, consulte: enlace

    
respondido por el AndreyKo 04.01.2017 - 13:27
0

Para cambiar el DNS, siga las instrucciones en: enlace

  1. Ir a la red

  2. Seleccione la conexión para la que desea configurar el DNS.

  3. Para cambiar la configuración de una conexión inalámbrica, seleccione la pestaña Wireless, luego seleccione la red inalámbrica apropiada.

  4. Haga clic en la flecha (derecha) y, en la ventana que aparece, seleccione la pestaña Configuración de IPv4 o Configuración de IPv6.

  5. Si el método seleccionado es Automático (DHCP), abra el menú desplegable y seleccione direcciones Automáticas (DHCP) solo en su lugar. Si el método está configurado para otra cosa, no lo cambie.

  6. En el campo Servidores DNS, ingrese las direcciones IP DNS, separadas por una coma

respondido por el Ferroao 10.11.2017 - 21:54

Lea otras preguntas en las etiquetas