¿Cuál es la forma correcta de cambiar la IP de DNS?

56

Sospecho que el servidor de nombres proporcionado por mi módem / enrutador ADSL tiene errores. Cada vez que navego a un sitio web por primera vez en ubuntu, la resolución del nombre de dominio lleva al menos 15 segundos.

Para evitar ese problema, cambié la configuración del servidor de nombres /etc/resolv.confde 192.168.1.1 (mi módem ADSL) a 8.8.8.8 (DNS primario de Google). Esto parece solucionar el problema, pero desafortunadamente /etc/resolv.conf"NetworkManager" sobrescribe mis cambios en cada inicio.

¿Cuál es la forma correcta de configurar la IP del servidor de nombres en ubuntu 10.4?

Wim Coenen
fuente

Respuestas:

51

Si tiene una configuración de conexión típica con el administrador de red y DHCP, intente lo siguiente:

  1. Haga clic derecho en el icono del administrador de red en el panel y elija "Editar conexiones ..."
  2. Seleccione su conexión desde la pestaña cableada o inalámbrica, elija "Editar"
  3. (Ingrese su contraseña si la conexión está configurada como "disponible en todo el sistema")
  4. Elija la pestaña de configuración de IPv4
  5. Cambie el método a "Solo direcciones automáticas (DHCP)"
  6. Ingrese el servidor de nombres que desea en el cuadro "Servidores DNS adicionales" y presione "Aplicar"

Eso debería hacer el truco.

Marcel Stimberg
fuente
1
Esto continúa funcionando en Ubuntu 12.04 y versiones posteriores, aunque NetworkManager ahora usa resolvconf para manejar resolv.conf.
jdthood
44
Si se pregunta dónde termina la configuración, eche un vistazo /etc/NetworkManager/system-connections/(necesitará privilegios administrativos para acceder a esos archivos de configuración).
Lekensteyn
2
Esto solo cambia dns para la conexión actual, pero ¿hay alguna forma de un cambio de DNS global ?
rubo77
La lista está vacía para mí. ¿Qué usa por defecto?
J. Taylor
1
¡Funciona exactamente igual en la interfaz del terminal por nmtuicierto!
Granitosaurus
30

Puedes cambiarlos así.

Primero, haga clic en el icono del administrador de red en su barra de menú y luego haga clic en el Edit Connections...elemento.

ingrese la descripción de la imagen aquí

Ahora, cambie a las pestañas "Alámbrico" o "Inalámbrico", dependiendo de lo que use: yo uso WiFi, así que lo usaré.

Seleccione el nombre de su red y haga clic en Edit...

Cambie a la pestaña IPv4 y luego cámbielo de DHCP automático a solo direcciones automáticas (DHCP).

Ingrese la dirección IP de su servidor DNS.

ingrese la descripción de la imagen aquí

Haga clic en guardar, ¡y listo!

jrg
fuente
Si bien puede cambiar el servidor DNS en la configuración de red en cualquier PC, es mejor cambiarlos en el enrutador real que se conecta a Internet para que todos los dispositivos conectados se beneficien de él.
Mark Rooney
3
¿Qué pasa si él no tiene un enrutador per se? ¿O solo quiere cambiar el DNS de esta computadora / usuario? ¿Qué pasa si es solo esta vez? Tal vez en realidad no tiene acceso al enrutador y quiere usar otro servidor DNS ... Puedo agregar razones a esta lista durante toda la noche. Buen consejo y respuesta @jrg.
Bruno Pereira
66
Es un buen tutorial gráfico para configurar dns en una sola máquina con el administrador de red. Solo señalaría que puede establecer más de uno, separados por comas. 8.8.8.8,8.8.4.4. La configuración de DNS para una LAN también puede ser útil, si el lan es lo suficientemente grande, personalmente uso el enrutador o la máscara dnsmask. En una LAN, a menudo es más fácil mantener una lista negra o proxy en una única ubicación (enrutador / máscara de conexión / calamar) en lugar de en cada cliente o cada usuario en cada cliente, pero eso está un poco más allá de la pregunta que se hace aquí.
Panther
29

La mejor manera de configurar un servidor de nombres a través de la CLI, sin NetworkManger, con una dirección estática o independiente de la conexión es esta:

Instale el paquete resolvconf .

correr

sudo nano /etc/resolvconf/resolv.conf.d/head

(ignore la advertencia de miedo. /etc/resolv.conf se genera automáticamente, por lo que la advertencia está ahí para que se coloque en /etc/resolv.conf cuando se genere /etc/resolv.conf). Al final del archivo, añadir

 nameserver <ip_of_nameserver>

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

 sudo resolvconf -u
Azendale
fuente
1
Por alguna razón, hace aproximadamente un mes, mi versión nocturna de Xubuntu dejó de resolver los nombres de host de LAN. Mi servidor DHCP debería emitirse (192.168.68.1) como el servidor DNS, también lo codifiqué en Network Manager y en todos los lugares (mencionado anteriormente en esta respuesta). Con la forma en que Xubuntu / NetworkMan / Whatever utiliza una IP 127.0.xx en estos días, es difícil diagnosticar el problema. Pude resolver IP externas, por lo que estaba obteniendo ALGO para DNS. De todos modos, esta fue la única respuesta que resolvió mi problema. Gracias
Adam Plocher
18

Otra forma de hacerlo es editar /etc/dhcp3/dhclient.conf, puede hacerlo escribiendo esto en el cuadro de diálogo Ejecutar (aparece presionando Alt+ F2)

gksudo gedit /etc/dhcp3/dhclient.conf

Luego encuentra la siguiente línea

#prepend domain-name-servers 127.0.0.1;

Y cambiarlo a

prepend domain-name-servers 8.8.8.8;

Esto hará que dhclient (el cliente DHCP que usa NetworkManager) anteponga esto a sus servidores dns, por lo que resolve.conf terminará luciendo así

nameserver 8.8.8.8
nameserver 192.168.1.1

Esta solución funcionará en todas partes y siempre obtendrá el DNS que haya elegido como principal.

LassePoulsen
fuente
44
Me parece que Network Manager escribe resolv.conf sin consultar dhclient.conf
daithib8
2
en ubuntu 11.10 necesita modificar /etc/dhcp/dhclient.conf en lugar de /etc/dhcp3/dhclient.conf
Pawel Barcik
1
puede poner en múltiples?
PyRulez
1
@PyRulez Sí, separados por comas, punto y coma al final
Sergiy Kolodyazhnyy
2
Intenté esto en 14.10 pero sin efecto
rubo77
7

Otra solución es cambiar la configuración de su enrutador para usar el otro servidor DNS. Simplemente inicie sesión en su administrador y siempre que no sea el enrutador el que causa el problema, todas sus máquinas cliente obtendrán un mejor DNS.

Oli
fuente
+1 De acuerdo en que si este es un problema que no es probable que se resuelva pronto, es mejor solucionarlo en el enrutador, entonces se solucionará en todas las máquinas de la red. Creo que es mejor usar Google DNS o OpenDNS.
Mark Davidson
1
Ya lo hice, pero el enrutador sigue actuando como un servidor de nombres intermedio entre los clientes y el servidor de nombres configurado, y todavía es muy lento.
Wim Coenen
1
Muchos ISP bloquean sus enrutadores para que no pueda cambiar esta configuración o tenga que pagar para hacerlo.
LassePoulsen
@Wim Si su enrutador no puede proporcionar una resolución de DNS dentro de un plazo razonable, digamos 50 ms con una buena conexión, algo está muy mal. Tan mal que puede estar manejando otro tráfico de manera ineficaz. Puede que sea hora de una actualización de $ 30 / £ 20.
Oli
1
@Oli: El problema de DNS solo aparece cuando utilizo el enrutador desde una caja de Linux: tuve el mismo problema con Debian, pero no tuve problemas con Windows. Estoy seguro de que es solo un problema sutil de compatibilidad. El enrutador funciona bien de lo contrario.
Wim Coenen
6

Haga clic en el indicador de red en la esquina superior derecha de la pantalla y seleccione Edit Connections.... Elija la conexión que desea modificar (probablemente de la pestaña Wiredo Wirelessy haga clic en el Edit...botón.

Cambie a la IPv4 Settingspestaña de la ventana de conexión y cambie el método de Automatic (DHCP)a Automatic (DHCP) addresses only. Ahora debería poder especificar una dirección IP del servidor DNS.

Guarde la conexión y debería estar listo para comenzar. Es posible que deba restablecer la conexión seleccionándola en el menú del indicador después de cambiar la configuración.

James Henstridge
fuente
1

Creo que si lo cambia bajo el administrador de red, los cambios persisten.

Para usar eth0 por ejemplo

Administrador de red -> Cableado -> Auto eth0 -> Configuración de ipv4.

Establezca su servidor DNS en 8.8.8.8 y aplique.

Mark Davidson
fuente
Tuve problemas para encontrar algo llamado "administrador de red". Hay un "Sistema - Administración - Herramientas de red" pero eso no ayuda. Finalmente descubrí que necesitaba "Sistema - Preferencias - Conexiones de red".
Wim Coenen
1
Hay un icono de administrador de red en el panel (el que muestra el estado de su red) en el que puede hacer clic derecho para editar las conexiones.
Marcel Stimberg
Esto no funciona
user568021
0

Usando la Terminal

/etc/resolv.confDebe editar el archivo para configurar la dirección IP del servidor de nombres que debe consultar el resolutor. Se pueden definir hasta 3 direcciones IP de Internet del servidor de nombres. Si hay varios servidores, la biblioteca de resolución los consulta en el orden indicado.

Primero escribe

sudoedit /etc/resolv.conf

Agregue la dirección IP de su servidor DNS preferido de la siguiente manera:

nameserver <preferred-ip1>
nameserver <preferred-ip2>
nameserver <preferred-ip3>

tomado de: http://www.cyberciti.biz/faq/ubuntu-linux-configure-dns-nameserver-ip-address/

Amith KK
fuente
66
Tenga en cuenta que si los servidores de nombres se configuran a través de DHCP, /etc/resolv.confse sobrescribirán. Por lo tanto, este enfoque solo es apropiado para máquinas con configuraciones de red manuales. Técnicamente, podría hacer chattr +i /etc/resolv.confpara evitar que el archivo se modifique (lo hice hace años), pero la mejor manera para la mayoría de las máquinas sería el enfoque de jrg en su respuesta: askubuntu.com/a/90263/13398 .
Scott Severance
@ScottSeverance Lo que el sistema no tenía X
Amith KK
En ese caso, es probable que sea un servidor con una red configurada manualmente, en cuyo caso su respuesta es perfectamente apropiada. Pero la mayoría de las máquinas Ubuntu ejecutan X y pueden manejar fácilmente el otro enfoque. Si una máquina no ejecuta X pero tiene una GUI adecuada instalada, también puede ejecutar las herramientas gráficas a través de SSH ForwardX11=yes.
Scott Severance
66
Si va a intentar editar manualmente el archivo /etc/resolv.conf, la forma correcta de hacerlo (para que no se sobrescriba) es instalar el paquete "resolvconf" y luego editar / etc / resolvconf / resolv. conf.d / head o /etc/resolvconf/resolv.conf.d/tail.
Azendale
0

Para servidores sin cabeza donde no hay X y la administración es a través de ssh o lo que sea, es necesaria una solución de línea de comandos. Si resolv.conf no se sobrescribe, entonces ese es el lugar correcto para cambiar los servidores de nombres.

Si resolv.conf no llegar sobrescribe entonces, en 14.04LTS al menos, a los archivos de edición son:

  • /etc/resolvconf/resolv.conf.d/head
  • /etc/resolvconf/resolv.conf.d/tail

Sugiero encarecidamente que coloque cadenas de comentarios en archivos como estos, de modo que aparezcan en el archivo generado (/etc/resolve.conf) y pueda encontrarlos en el futuro. Comienzo y finalizo cada archivo con un comentario de una línea del formulario:

  • # ====== comenzar /etc/resolveconf/resolv.d/tail ======
  • # ====== final /etc/resolveconf/resolv.d/tail ======

y poner las directivas relevantes entre ellos.

Gordon
fuente
0

Descubrí que agregar la línea dns-nameserver ipal archivo de interfaces, establecer la configuración de la conexión por cable ipv4 solo en la configuración Automática (DHCP) e ingresar la IP del servidor DNS y el nombre de dominio. Además, agregar la IP de DNS local a la sección de DNS estático del enrutador DSL hace que NetworkManager incluya esta dirección local en el resolv.confarchivo que sobrescribe junto con otra información recuperada del enrutador. Todo esto en conjunto parece hacer persistente la resolución de nombres DNS locales, una tarea sorprendentemente difícil que parece. Mi necesidad de DNS local es montar un cliente Linux en un recurso compartido Samba usando mount.cifsuna red con servicio DHCP.

Dañino
fuente
0

Si Network-Managerse detiene y /etc/resolvconf/resolv.conf.d/basese ha configurado.

Quizás resolvconf --enable-updatessea ​​útil.

J.Doe
fuente
0

Puede cambiar la configuración de IPv4 DNS de forma gráfica como se responde aquí

Pero si se pregunta cómo hacer lo mismo con la línea de comandos, debe enumerar los archivos en el /etc/NetworkManager/system-connectionsdirectorio con el lscomando:

ls /etc/NetworkManager/system-connections

Tiene que haber un archivo con el nombre de su conexión, se llama el mío Wired Connection 1.

Por lo tanto, debemos editar el archivo y agregar servidores DNS en él:

Sudo nano "/etc/NetworkManager/system-connections/Wired connection 1"

Agregue tantos servidores DNS como desee en la [ipv4]sección y sepárelos con punto ;y coma y también coloque un ;al final del último servidor DNS como este:

[ipv4]
dns=1.1.1.1;8.8.8.8;9.9.9.9;

Simplemente puede eliminar esta línea si no desea asignar ningún dns.

También debe agregar esta línea ignore-auto-dns=truepara ignorar los servidores DNS proporcionados por DHCP (como el servidor DNS configurado en la configuración del enrutador):

[ipv4]
dns=1.1.1.1;8.8.8.8;9.9.9.9;
ignore-auto-dns=true

Un pequeño contexto para esta respuesta: estaba tratando de averiguar qué archivo se edita cuando agrego un servidor DNS en la configuración de DNS de la GUI, por lo que ejecuté este comando durante más de 16 horas: sudo grep -rs "1.1.1.1" /que estaba escaneando todos los archivos en mi máquina virtual Ubuntu pero nunca terminó incluso después de ejecutarse tanto tiempo, pero sabía que era posible que el archivo pudiera existir, /etc/NetworkManagerasí que ejecuté grepnuevamente apuntando a ese directorio y encontré esto: /etc/NetworkManager/system-connections/Wired connection 1:dns=1.1.1.1;así que volví aquí para escribir una respuesta solo para descubrir que Lekensteyn ya ha señaló esto en los comentarios sobre la respuesta aceptada .

Shayan
fuente