136 votos

DNS no se resuelve en Mac OS X

Algunos de mis compañeros de trabajo están teniendo problemas en sus Mac: la resolución DNS no funciona en Mac OS X. Están ejecutando Snow Leopard 10.6.8. Pueden utilizar DNS en una máquina virtual Windows 7 (VMware Fusion 3.1.3) que se ejecuta en OS X. Los ordenadores son MacBook Pros de 15", modelo de principios de 2011.

Cosas que han probado y no han funcionado:

  • activar/desactivar el aeropuerto
  • reiniciando
  • uso de conexión por cable en lugar de wifi
  • borrando las credenciales de conexión y añadiéndolas de nuevo
  • desactivar el cortafuegos del Mac
  • utilizando IP estática
  • configurar manualmente los servidores DNS
  • reiniciar mDNSResponder
  • las correcciones de esta otra pregunta

EDITAR respuesta a la respuesta de Martín:

- ¿Puede hacer ping al DNS que desea utilizar?

$ ping apple.com
ping: cannot resolve apple.com: Unknown host

- ¿Cuáles son las direcciones IP de los DNS que desea utilizar?

Este es un servidor DNS de la empresa que se da con DHCP, funciona bien para otras personas. También he probado el 8.8.4.4 de Google y el 205.171.3.65 (que según GRC's DNS Benchmark es el más rápido).

- ¿Has probado a utilizar 8.8.8.8 (google) o cualquiera de los OpenDNS 208.67.222.222 o 208.67.220.220?

No funciona, ver la salida de Google Chrome:

El servidor de www.apple.com no se puede encontrar, porque la búsqueda DNS falló. DNS es el servicio de red que traduce el nombre de un sitio web a su dirección de Internet. Este error suele deberse a que no hay conexión a Internet o a que la red está mal configurada. También puede deberse a que el servidor DNS no responda o a que un cortafuegos impida a Google Chrome acceder a la red.

- ¿Puedes hacer ping a esos hosts?

$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes 64 bytes from
8.8.8.8: icmp_seq=0 ttl=58 time=3.925 ms

- crear un usuario en blanco

Se creó una cuenta de usuario invitado, el problema de DNS seguía existiendo al utilizar la cuenta de invitado.

- nslookup y dig funcionan bien

$ nslookup www.apple.com 8.8.8.8
Server:  8.8.8.8
Address: 8.8.8.8#53

Non-authoritative answer:
www.apple.com canonical name = www.isg-apple.com.akadns.net.
www.isg-apple.com.akadns.net canonical name = www.apple.com.edgekey.net.
www.apple.com.edgekey.net canonical name = e3191.c.akamaiedge.net.
Name: e3191.c.akamaiedge.net
Address: 184.24.141.15

$ dig @8.8.8.8 www.apple.com
; <<>> DiG 9.6.0-APPLE-P2 <<>> @8.8.8.8 www.apple.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11298
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION: ;www.apple.com.   IN A
;; ANSWER SECTION:
www.apple.com.  1041 IN CNAME www.isg-apple.com.akadns.net.
www.isg-apple.com.akadns.net. 38 IN CNAME www.apple.com.edgekey.net.
www.apple.com.edgekey.net. 8794 IN CNAME e3191.c.akamaiedge.net.
e3191.c.akamaiedge.net. 17 IN A 184.24.141.15
;; Query time: 4 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Tue Oct 4 09:25:28 2011
;; MSG SIZE  rcvd: 158

- también se hizo el lavado de la caché de DNS, pero no ayudó a

sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder

EDITAR 2 :

$ cat /etc/resolv.conf
#
# Mac OS X Notice
#
# This file is not used by the host name and address resolution
# or the DNS query routing mechanisms used by most processes on
# this Mac OS X system.
#
# This file is automatically generated.
#
domain {redacted}.com
nameserver 8.8.8.8
nameserver 208.67.222.222

0 votos

A mi también me pasa en león.

0 votos

Me pasa en Mavericks, 10.9.4

0 votos

Esto parece un problema histórico que pudrió la vida de los usuarios y administradores de red desde Leopard hasta Yosemite. Si alguien todavía ve este problema, por favor informe claramente si usted tiene más de una interfaz activa y, además, obtener su conf. de un servidor DHCP (desde diferentes lados). ¿Por qué? Nunca vi tal problema en ningún otro Unix y en ninguno de mis Macs (tengo muchos), pero ninguno de ellos tiene más de una interfaz hablando hacia una fuente de información DNS.

101voto

Robin Robinson Puntos 1031

Resulta que la solución era rebotar mDNSResponder:

sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist

Esto fue obtenido por otro colega de esta pregunta sobre el fallo del servidor .

OS X 10.10.0 - 10.10.3, Yosemite

Aparentemente mDNSResponder no existe en Yosemite (OS X 10.10). Puede reiniciar descoveryd en su lugar para solucionar estos problemas.

sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.discoveryd.plist
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.discoveryd.plist

OS X 10.10.4+, Yosemite

En OSX 10.10.4 el mDNSResponder ha sido reintroducido . Así que use el primero funcionará de nuevo.

7 votos

Pero esta respuesta no es realmente satisfactoria. Necesito saber cómo evitar que ocurra.

0 votos

¡Mi DNS (conexión a Internet con direcciones IP está bien, al igual que nslookup) también comenzó a salir, esto trae de vuelta sin reiniciar, gracias!

0 votos

@dkagedal ¿Ayudará alguna de las otras respuestas? Realmente no estoy familiarizado con las redes, así que este no es mi fuerte. Si se te ocurre una respuesta más preventiva, ¡por favor, publícala aquí!

18voto

Paul Puntos 170

En realidad, creo que es posible que desee utilizar

scutil --dns

scutil -r hostname

Estos comandos utilizan el almacén dinámico en configd, a diferencia de los archivos planos en /etc, que a menudo sólo se leen en modo de usuario único y para sistemas no conectados en red.

man scutil   # or

scutil --help

7 votos

No explicas por qué estos comandos ayudarían con este problema. ¿Acaso lo hacen? ¿O esto es un comentario a una de las otras respuestas o algo así?

0 votos

Una posible ventaja de scutil es que podría funcionar independientemente de si el ordenador tiene discoveryd o mDNSResponder. Data de antes de su introducción.

3 votos

Estos comandos no resuelven el problema

13voto

gbakken Puntos 56

He experimentado el mismo problema Y aunque reiniciar mDNSResponder parece "funcionar", reiniciarlo un par de veces cada hora es una mierda.

Así que, por ahora, he "resuelto" el problema ejecutando dnsmasq localmente. Para ello:

  • Construya dnsmasq (descargue los archivos tgz y make o brew install dnsmasq )

  • Pon esto en un dnsmasq.conf archivo:

    resolv-file=resolv.conf
    user=nobody
    group=nobody
    interface=lo0
    cache-size=1024
  • Pon esto en un resolv.conf que se encuentra en el mismo directorio que el archivo dnsmasq.conf archivo (nb: no /etc/resolv.conf ):

    nameserver 8.8.8.8
    nameserver 4.2.2.1
    nameserver 4.2.2.2
  • Ejecutar dnsmasq con sudo dnsmasq --no-daemon --log-queries -C dnsmasq.conf . El resultado debería ser algo parecido:

    ...
    dnsmasq: reading resolv.conf
    dnsmasq: using nameserver 4.2.2.1#53
    dnsmasq: using nameserver 4.2.2.2#53
    dnsmasq: using nameserver 8.8.8.8#53
    dnsmasq: read /etc/hosts - 6 addresses
  • Abra Preferencias de Red y asegúrese de que 127.0.0.1 es el único servidor DNS (preferencias de red -> avanzadas -> DNS -> añadir 127.0.0.1)

Las cosas deberían empezar a funcionar bien de nuevo.

Una vez que todo funcione, puede ejecutar dnsmasq sin el --no-daemon y --log-queries para que se inicie en segundo plano y no tengas que mantener abierta una ventana de Terminal.

0 votos

Me gustaría señalar que después de 16 horas seguidas rastreando Internet, este es el sólo que me permite resolver los nombres internos de las empresas Y permite que la red dividida funcione correctamente. Muchas gracias por hacer este comentario.

0 votos

También me gustaría señalar que en OS X El Capitan, con el fin de script configurar esto, me envolvió mi openconnect en un script de Python, junto con comandos como networksetup -setdnsservers 127.0.0.1 y networksetup -setsearchdomains "$COMPANY_NAME".com . Añada su dnsmasq y ¡listo! Por fin tengo una solución VPN estable gracias a este comentario.

0 votos

Para los futuros lectores, me pareció más fácil sólo ssh en mi caja en el trabajo, determinar qué IP tenía para los servidores de nombres, y luego hardcode esas IP en mi resolv.conf por debajo de 8.8.8.8 (googles servidor DNS). Eso permite que todos los nombres que no son de la empresa se resuelvan correctamente sin tener que pasar por los servidores de la empresa, lo que me parece útil para la privacidad y la velocidad. En cuanto a hardcoding va, esas IP no van a cambiar en el corto plazo, y si lo hacen, no voy a ser el único afectado y debe ser trivial para editar dos líneas.

8voto

UnkwnTech Puntos 21942

La resolución de nombres en OSX (y en UNIX en general) se toma de las direcciones IP de los DNS en el archivo ubicado en /etc/resolv.conf (que OS X genera automáticamente, que yo recuerde).

Ya que ha probado prácticamente todo lo que se me ocurre, me gustaría preguntarle:

  • ¿Puede hacer ping al DNS que desea utilizar?
  • ¿Cuáles son las direcciones IP de los DNS que desea utilizar?
  • ¿Has probado a utilizar 8.8.8.8 (google) o alguno de los OpenDNS 208.67.222.222 o 208.67.220.220?
  • ¿Puedes hacer ping a esos hosts?

Por último, una prueba generalmente agradable consiste en crear un usuario en blanco y ver si ese nuevo usuario presenta el mismo problema. Si no lo hace, entonces puedes empezar a indagar qué tiene tu usuario actual que pueda estar causando el problema; si también falla, entonces sabes que se trata de algo más relacionado con el "sistema".

Echa también un vistazo a la Consola a ver si detectas algo que pueda estar relacionado (y que te gustaría pegar por aquí).

Por último, pero no por ello menos importante, tu Mac viene con dos importantes comandos DNS, nslookup y dig .

Así que para resolver www.apple.com usando el servidor de google, escribirías:

nslookup "host a resolver" "servidor DNS a utilizar". Ej:

$ nslookup www.apple.com 8.8.8.8
Server:     8.8.8.8
Address:    8.8.8.8#53

Non-authoritative answer:
www.apple.com   canonical name = www.isg-apple.com.akadns.net.
www.isg-apple.com.akadns.net    canonical name = www.apple.com.edgekey.net.
www.apple.com.edgekey.net   canonical name = e3191.c.akamaiedge.net.
Name:   e3191.c.akamaiedge.net
Address: 184.24.141.15

NSLookup es un viejo comando (que se suponía que iba a ser obsoleto hace algunos años y reemplazado por DIG, pero su sintaxis fácil de usar era demasiado buena para matarla, supongo), su "reemplazo" es dig , un comando mucho más potente, cuya sintaxis es más disparatada.

Para realizar la misma consulta, escribirías:

dig @8.8.8.8 www.apple.com

Y aquí está el resultado:

$ dig @8.8.8.8 www.apple.com

; <<>> DiG 9.7.3 <<>> @8.8.8.8 www.apple.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17356
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.apple.com.         IN  A

;; ANSWER SECTION:
www.apple.com.      1782    IN  CNAME   www.isg-apple.com.akadns.net.
www.isg-apple.com.akadns.net. 42 IN CNAME   www.apple.com.edgekey.net.
www.apple.com.edgekey.net. 21581 IN CNAME   e3191.c.akamaiedge.net.
e3191.c.akamaiedge.net. 2   IN  A   184.24.141.15

;; Query time: 26 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Mon Oct  3 21:21:49 2011
;; MSG SIZE  rcvd: 158

Como puedes ver, dig es mucho más "verboso" (lo que es bueno para depurar qué demonios está pasando). El poder de dig viene del hecho de que usted puede especificar qué tipo de consulta que desea realizar (Entre otras cosas).

En cualquier caso, háganos saber las salidas exactas de estos comandos.

0 votos

Véase mi edición de la pregunta.

0 votos

@CajunLuke hmmmm interesante me importaría añadir la salida de: cat /etc/resolv.conf a tu pregunta?

0 votos

Editado. (Relleno para que quepa el comentario.)

6voto

freezedpeanuts Puntos 51

Tuve exactamente los mismos síntomas (y pase un rato solucionando problemas) pero pude resolverlo cuando me di cuenta de que me metí con /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist y lo que hice fue de alguna manera interpretado como malformado. He restaurado desde una copia de seguridad y la máquina fue capaz de resolver los nombres de host de nuevo.

Antes de llegar a la solución, también me di cuenta de que era capaz de navegar por Internet si utilizaba un proxy SOCKS5 a través de ssh -D e intenté búsquedas DNS a través del túnel.

2 votos

Mi empresa ha tenido este problema durante meses y meses, cada vez llevando Macs al "Genius bar" cuya única solución era borrar los discos duros y empezar de nuevo. Vi tu post, y borré com.apple.mDNSResponder.plist, reinicié, y el problema se resolvió. Ojalá pudiera votarte mil millones de veces.

1 votos

Nota borrar com.apple.mDNSResponder.plist ¡! Lo hice como @TomThorogood sugirió. Tengo dificultades para volver. Incluso puse el archivo de nuevo y reiniciar yo era incapaz de obtener cualquier respuesta de Internet. El sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist que ayudado.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X