50 votos

OS X 10.10.1 El archivo /etc/hosts y /private/etc/hosts se ignora y no se resuelve

Como el título dice, corriendo os x 10.10.1. si tengo una entrada en mi archivo de hosts y hacer una dig o nslookup sigue mostrando una IP diferente a la que está en mi archivo de hosts incluso después de intentar vaciar varias cachés.

He probado lo siguiente..

  1. vaciar las cachés de mdns y udns ejecutando:
    1. sudo discoveryutil mdnsflushcache;
    2. sudo discoveryutil udnsflushcaches;
  2. vaciar la caché con dscacheutil -flushcache
  3. recargar el discoveryd.plist archivo
    1. sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.discoveryd.plist
    2. sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.discoveryd.plist

mi archivo de hosts se ve así..

% cat /private/etc/hosts
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##

127.0.0.1   localhost
255.255.255.255 broadcasthost
::1             localhost
fe80::1%lo0 localhost
166.78.60.102   admin.devsite1.com

72voto

Nate Puntos 220

El archivo /private/etc/hosts parece funcionar normalmente para mí en Yosemite (versión 10.10.1). No es necesario vaciar la caché o reiniciar discoveryd (el resolver DNS en Yosemite); sudo fs_usage | grep private/etc/hosts muestra discoveryd leer el archivo inmediatamente después de guardar los cambios en él.

[Actualización: discoveryd sólo se utilizó en las versiones de OS X 10.10.0 - 10.10.3. Tanto en las versiones anteriores como en las posteriores, mDNSResponder proporciona la misma función... y también nota inmediatamente los cambios en /etc/hosts].

Sin embargo, dig , nslookup y host no verán las entradas en él porque se saltan el resolvedor del sistema y hacen búsquedas de DNS en bruto. Siempre lo han hecho, así que esto no es nuevo en Yosemite. La forma "oficial" de hacer una búsqueda a través del resolver del sistema en OS X es usar dscacheutil :

dscacheutil -q host -a name www.example.com

...pero como eso es dolorosamente verboso, tiendo a usar simplemente ping en su lugar (y luego mira la primera línea, donde se enumera qué IP está haciendo ping). A partir de la versión 10.9, también puede usar la pestaña de búsqueda de la Utilidad de Red (antes usaba dig y, por tanto, se salta la política de búsqueda del sistema).

BTW, por favor, no prestes atención al hilo de macrumors que enlazó Tetsujin; está lleno de gente que no sabe muy bien lo que hace y está malinterpretando los resultados de sus propios errores.

21voto

JB Smith Puntos 21

He descubierto otra arruga con este tema.

Para solucionar el problema que tenía, tuve que AÑADIR entradas en el archivo de hosts de estilo IPv6.

Parece que Safari pasará por alto las entradas IPv4 SI tienes una configuración de red IPv6.

Debe añadir entradas duplicadas que resuelvan la dirección IPv6 localhost en /etc/hosts.

Entrada IPv4 127.68.56.101 facebook.com

Por ejemplo, la entrada IPv6 fe80::1%lo0 facebook.com

etc.

1voto

littleO Puntos 12894

Mi archivo de hosts siguió siendo ignorado después de que edité en la edición de texto. Intenté varias formas de arreglar los finales de línea, añadí entradas IPv6 a las entradas IPv4 existentes sin éxito siguiendo Respuesta de JB Smith arriba . Sospecho que su respuesta funcionaría si mi empresa soporta IPv6, lo cual descubrí después de mis intentos.

La única solución que me ha funcionado es utilizar este plugin gratuito de GUI para editar el archivo de hosts.

https://github.com/specialunderwear/Hosts.prefpane/blob/master/README.mdown

1voto

sandra Puntos 1

Encontré este artículo porque Yosemite 10.10.5 no recogía los cambios de mi archivo de hosts, y nada de lo que podía hacer lo arreglaba. (Reinicié, traté de vaciar las cachés, seguí todos los consejos que pude encontrar en Internet, etc.).

La respuesta era tan sencilla que da vergüenza, en realidad, pero pensé en compartirla. Usé textedit para editar el archivo de hosts, y se tomó la libertad de guardar el archivo como hosts.txt. Normalmente me daría cuenta de algo así, pero estoy usando una instalación fresca de Yosemite y todavía no había activado "mostrar todas las extensiones de archivo", por lo que no parecía que el nombre del archivo había cambiado cuando lo vi en mi escritorio.

Es un poco obvio, y la mayoría de la gente que lee este post probablemente ya lo haya hecho, pero asegúrate de compruebe que su archivo de hosts está realmente ahí y no ha sido sustituido por hosts.txt .

Para activar la visualización de las extensiones de los archivos, vaya a Finder > Preferencias > Mostrar todas las extensiones de archivo

Para evitar que TextEdit añada la extensión .txt a los archivos, abra un archivo en Text Edit y elija Archivo > Guardar como (Si no ve el Guardar como mantenga pulsada la tecla de opción después de hacer clic en Archivo y Guardar como debería aparecer en el menú). Busque la opción Si no se proporciona ninguna extensión, utilice ".txt" y anular la selección.

0voto

Mark Puntos 1

Creo que Apple reconocerá esto como un error (he presentado uno hoy). Me he dado cuenta de que las nuevas entradas en /etc/hosts se recogen pero, los cambios en las entradas existentes se ignoran. El cambio de nombre de una entrada en .... (por ejemplo, de web1 a web1a) es una solución para mí.

Entrada antigua de /etc/hosts: 54.173.164.18 web1

Nueva entrada en /etc/hosts: 54.174.161.12 web1a

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