¿Cómo puedo hacer que OSX Mavericks note un cambio de DNS en '/ etc / hosts'?

23

Una forma común de "bloquear" un sitio web (por ejemplo, eliminarlo como una distracción) es editar /etc/hosts y apuntar el dominio a la dirección de loopback. Por ejemplo:

# Stop goofing off
127.0.0.1 youtube.com

En Mavericks, encuentro que cambios como este son aparentemente ignorados por el sistema operativo; después de editar el archivo (con sudo) y guardar, el sitio que debería bloquearse todavía se carga.

He intentado restablecer mi caché de DNS de la siguiente manera:

dscacheutil -flushcache
sudo killall -HUP mDNSResponder

Pero el sitio todavía se carga.

¿Cómo puedo hacer que OSX Mavericks note un cambio en /etc/hosts ?

    
pregunta Nathan Long 18.02.2014 - 15:10

4 respuestas

18

De acuerdo con la página del manual de hosts (5) , el archivo /etc/hosts es usado por mDNSResponder . Sus intentos son vaciar correctamente la memoria caché de todo el equipo, pero también debe vaciar la memoria caché privada del navegador.

Después de cada edición de /etc/hosts , restablece el caché mDNSResponder usando esta nota técnica de Apple, OS X: cómo restablecer el DNS caché :

sudo dscacheutil -flushcache

Después de hacer esto, reinicie los cachés de su navegador :

  • Safari: use el elemento de menú Safari > Restablecer Safari .
  • Chrome: usa el elemento de menú Chrome > Borrar datos de navegación .
respondido por el Graham Miln 18.02.2014 - 15:49
5

Elimine la memoria caché de su navegador y agregue 127.0.0.1 www.youtube.com a su archivo host.

youtube.com se resuelve en www.youtube.com . Su navegador almacena en caché esa información y lo redirige a la página www.

    
respondido por el napcae 18.02.2014 - 15:39
0

En OS X 10.9 Mavericks, hay problemas al intentar enumerar múltiples nombres de host en La misma línea de / etc / hosts. Intenté todos los otros consejos relacionados con el DNS en esta publicación y la publicación relacionada fue en vano, hasta que me topé con el enlace de "problemas" arriba.

Solía tener algo como esto:

127.0.0.1 localhost host1 host2 host3 ...

pero encontré que la resolución de esos hosts tomaría una eternidad o no funcionaría en absoluto. Tratar de acceder a los sitios a través de los navegadores en general estaría bien (aunque a veces es muy lento de resolver), pero no funcionará intentar hacer ping desde la línea de comandos.

Cambiarlo al siguiente formato hizo que todo funcionara bien para mí, y ahora las cosas funcionan muy bien con ping, en el navegador y en cualquier otro lugar:

127.0.0.1 localhost
127.0.0.1 host1
127.0.0.1 host2
127.0.0.1 host3

Más detalles .

    
respondido por el Scott Dudley 27.08.2014 - 16:24
0

Además de la respuesta de Graham, intente chrome: // net-internals / # dns (para Google Chrome) para ver qué se almacena en caché. Luego haga clic en Borrar caché de host para borrarlo todo.

    
respondido por el David Hempy 10.03.2015 - 15:07

Lea otras preguntas en las etiquetas