No dejes de compartir nuestro sitio y códigos con otro, apóyanos para hacer crecer esta comunidad.
Solución:
Primero necesita saber un poco sobre cómo funciona la resolución de nombres en Ubuntu desde Ubuntu 12.04.
Stéphane Graber publicó en su blog alguna información al respecto el año pasado aquí. Lo más importante que debe saber es que tanto Ubuntu Server como Ubuntu Desktop usan resolvconf para administrar el resolv.conf
expediente. Eso significa que ya no debes editar /etc/resolv.conf
directamente; en su lugar, debe configurar la utilidad de configuración de su interfaz de red para proporcionar la información correcta a resolvconf. Para Ubuntu Server, la utilidad de configuración de la interfaz de red es si arriba y está configurado por el archivo /etc/network/interfaces
. Para Ubuntu Desktop, la utilidad de configuración de la interfaz de red es Gerente de Redes. Esto es lo que estás usando.
NetworkManager se configura mediante Indicador de red > Editar conexiones. Sin embargo, para las interfaces de red configuradas por DHCP normalmente no es necesario cambiar ninguna configuración manualmente. Normalmente, lo que sucede es que el servidor DHCP (remoto) proporciona a NetworkManager una dirección IP para la interfaz local y la dirección de un servidor de nombres DNS (remoto) para usar. NetworkManager inicia una instancia de un servidor de nombres de reenvío que escucha localmente en 127.0.1.1. Esta dirección, 127.0.1.1, se envía a resolvconf que pone nameserver 127.0.1.1
en /etc/resolv.conf
. NetworkManager también proporciona la dirección IP (remota) del servidor de nombres DNS proporcionado por DHCP al servidor de nombres de reenvío. Por lo tanto, un programa que se ejecuta en el sistema local le pide al resolutor que traduzca un nombre de host en una dirección IP; el resolutor consulta el servidor de nombres de reenvío local en 127.0.1.1; el servidor de nombres de reenvío consulta los servidores de nombres remotos de los que se le ha informado, recibe una respuesta y la envía de vuelta a la cadena.
NetworkManager se comunica con el proceso del servidor de nombres de reenvío a través de D-Bus. Puede ver lo que NetworkManager le dijo al servidor de nombres de reenvío ejecutando el comando
nmcli dev list iface eth0 | grep IP4.DNS
Actualización derivada de los comentarios:
Tenga en cuenta que resolvconf realmente escribe el archivo /run/resolvconf/resolv.conf
a la que /etc/resolv.conf
se supone que es un enlace simbólico. Si /etc/resolv.conf
no es un enlace simbólico, entonces necesita volver a crearlo. Para hacerlo puedes ejecutar
sudo dpkg-reconfigure resolvconf
o
sudo ln -sf /run/resolvconf/resolv.conf /etc/resolv.conf
Hice el cambio sugerido en el siguiente enlace (deshabilitar dnsmasq). Ahora todo funciona muy bien! http://www.ubuntugeek.com/how-to-disable-dnsmasq-in-ubuntu-12-04precise.html
Abierto /etc/NetworkManager/NetworkManager.conf
expediente.
sudo gedit /etc/NetworkManager/NetworkManager.conf
Comente la línea como:
#dnsmasq deactivated
#dns=dnsmasq
EDIT 2: la publicación anterior fue eliminada correctamente por la moderación, estoy publicando lo que he encontrado para ser una solución. Lo siento por eso.
EDITAR: Acabo de encontrar la respuesta y está en esta misma página, lo siento por mi miopía. Publiqué mis hallazgos a continuación, ampliando la respuesta correcta de Richard Lindstedt que se encuentra en esta página. Dejé mi rumor inicial por un poco de contexto. Vote a favor de la respuesta de Richard, se lo merece.
En realidad es muy fácil.
simplemente abra su archivo conf de interfaces –> sudo vi /etc/network/interfaces
Eso seguro no ayudó al OP y no me ayuda ahora. no queremos static direcciones, queremos usar las que nos envía el servidor DHCP. NetworkManager parece reconocerlos, pero Ubuntu los ignora sin rodeos:
# nmcli dev list iface wlan0 | grep IP4.DNS
IP4.DNS[1]: 10.*.*.*
IP4.DNS[2]: 10.*.*.*
IP4.DNS[3]: 8.8.8.8
Pero…
# dig microsoft.com
; <<>> DiG 9.9.5-4.3-Ubuntu <<>> microsoft.com
;; global options: cmd
;; connection timed out; no servers could be reached
Y mi /etc/network/interfaces es:
auto lo
iface lo inet loopback
lo cual es un poco extraño, esperaría que todas las interfaces se declararan aquí (¿o me estoy perdiendo algo?).
Entonces, en resumen:
- No me metí con ningún archivo para empezar
- ya he corrido
dpkg-reconfigure resolvconf
- El enlace simbólico correcto está en su lugar
- NetworkManager recupera los servidores DNS correctos de DHCP
- Ubuntu NO usa tales direcciones
- La solución es poner 8.8.8.8 fijo en /etc/network/interfaces QUE NO QUIERO
- Quiero usar los servidores DNS proporcionados por DHCP en todas y cada una de las situaciones.
No abrir otro hilo porque es el problema exacto, excepto que ahora estoy en 14.10 (pero esto me ha estado molestando desde la actualización de 12.10 a 13.04).
SOLUCIÓN
Esa última frase me puso en el camino correcto, y solo entonces me di cuenta de la respuesta de Richard.
El problema parece estar relacionado con el conflicto dnsmasq
y resolvconf
paquetes Hasta las 12.10, dnsmasq
se utilizó. Desde 13.04 en adelante, Ubuntu pareció cambiar a un híbrido dnsmasq/resolvconf, donde ha instalado los paquetes dnsmasq-base
y resolvconf
pero no dnsmasq
sí mismo.
No puedo decir si es un error en los scripts de actualización para 13.04 o algo más, porque cuando se actualiza (como en las instalaciones nuevas) se instala resolvconf, se actualiza dnsmasq-base y se desinstala (correctamente) dnsmasq.
El problema es que el script de actualización no puede comentar el dns=dnsmasq
en linea /etc/NetworkManager/NetworkManager.conf
. Entonces, aunque el daemon dnsmasq ya no está presente en el sistema, /etc/resolv.conf todavía espera que lo esté.