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


40

Como dice el título, ejecutando os x 10.10.1. si tengo una entrada en mi archivo de hosts y hago una digo nslookuptodavía muestra una IP diferente de la que está en mi archivo de hosts incluso después de intentar vaciar varias cachés.

He probado lo siguiente..

  1. Vaciar cachés mdns y udns ejecutando:
    1. sudo discoveryutil mdnsflushcache;
    2. sudo discoveryutil udnsflushcaches;
  2. vaciar caché usando dscacheutil -flushcache
  3. recarga el discoveryd.plistarchivo
    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

3
Parece que Yosemite no está usando hosts de la misma manera que antes; tampoco elimina las cachés de la misma manera, y mDNS ha quedado en segundo plano. Esto tiene mucha charla sobre el tema: foros.macrumors.com/showthread.php?t=1741422 Editar ahh ... supongo ya has llegado hasta azchipka.thechipkahouse.com/…
Tetsujin

gracias, sí, ya leí eso ... si así es como va a ser os x ... es horrible: \
horrible

1
Me alegro de no tener que depender de hosts en Mac, tbh; Tiendo a jugar siempre en Win cuando necesito hacer eso, aunque eso no es lo único que me mantiene alejado de Yosemite en este momento :(
Tetsujin

Sí, mi rmbp es la máquina de desarrollo principal que utilizo para el desarrollo web / sysadmin desafortunadamente y necesito resolver esto, de lo contrario volveré a los rebeldes.
Gorelativo

Otros pueden desear simplemente deshabilitar ipv6 en sus estaciones de trabajo, encontré esto que explica la clave: technipages.com/how-to-disable-ipv6-in-macos-sierra - Sin embargo, incluso después de deshabilitar ipv6 en mi nic, el problema persistió .
James T Snell

Respuestas:


61

/ private / etc / hosts parece estar funcionando normalmente para mí en Yosemite (versión 10.10.1). No es necesario vaciar el caché o restablecer discoveryd(el solucionador DNS en Yosemite); sudo fs_usage | grep private/etc/hostsmuestra la discoverydlectura del archivo inmediatamente después de guardar los cambios.

[Actualización: discoverydsolo se usó en las versiones de OS X 10.10.0 - 10.10.3. Tanto en las versiones anteriores como en las posteriores, mDNSResponderproporciona la misma función ... y también nota inmediatamente los cambios en / etc / hosts.]

Sin embargo, dig, nslookup, y hostno verá entradas en él, ya que de derivación de resolución del sistema y hacer búsquedas de DNS primas. Siempre han hecho esto, así que esto no es nuevo en Yosemite. La forma "oficial" de hacer una búsqueda a través del sistema de resolución en OS X es usar dscacheutil:

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

... pero como eso es dolorosamente detallado, tiendo a usarlo pingen su lugar (y luego miro la primera línea, donde enumera qué IP está haciendo ping). A partir de 10.9, también puede usar la pestaña de búsqueda de Network Utility (antes de eso dig, y por lo tanto omitió la política de búsqueda del sistema).

Por cierto, no prestes atención al hilo de macrumores que Tetsujin enlazó; está lleno de personas que no saben muy bien lo que están haciendo y no comprenden los resultados de sus propios errores.


1
Gracias Gordon, sí me di cuenta después de que he publicado esta dig, nslookupy hostno utilizan la resolución de DNS local. Dicho esto /etc/hostsfunciona como se esperaba ..
Gorelativo 03 de

Si actualizo mi /etc/hostsarchivo o mi /private/etc/hostsarchivo, entonces no se refleja en absoluto con dscacheutil -q host -a name www.example.como con cualquier otro comando ..
Viaje

3
@Trip asegúrese de que las entradas que agregó estén formateadas correctamente: dirección IP seguida de un espacio o una pestaña, seguido del nombre, luego un salto de línea al final de la línea. Intente imprimir el archivo hosts con cat -vet /etc/hostspara hacer visibles los caracteres normalmente invisibles. Cada línea debe verse como "127.0.0.1 ^ Inetsecuritybureau.com $" ("^ I" es una pestaña y "$" es el avance de línea) o "127.0.0.1 netsecuritybureau.com $". Si ve una "^ M" (retorno de carro) justo antes de "$", tiene texto con formato DOS / Windows y necesita eliminar los retornos de carro.
Gordon Davisson

Ah wow, muchas gracias por la ayuda. Seguí tu ejemplo para asegurarme de que sea una pestaña o espacio. Mi línea dice exactamente:, M127.0.0.1^Iyoutube.com^M^Mluego realicé dscacheutil -flushcache; sudo killall -HUP mDNSRespondery cuando navego a youtube.com todavía aparece youtube y no localhost.
Viaje el

@Trip Hay varias formas de limpiar caracteres invisibles como los de la línea de comando, pero recomendaré el editor de GUI TextWrangler : use el menú Ver> Pantalla de texto> Mostrar invisibles para ver (y editar) cosas como esas retornos de carro. Además, es gratis y tiene opciones para mostrar / abrir archivos y carpetas invisibles (como / etc), y para usar los derechos de administrador para editar archivos del sistema.
Gordon Davisson el

17

He descubierto otra arruga con este problema.

Para solucionar el problema que tenía, tuve que AGREGAR entradas de archivo de hosts de estilo IPv6.

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

Debe agregar entradas duplicadas que se resuelvan en la dirección de host local IPv6 en / etc / hosts.

Entrada IPv4 127.68.56.101 facebook.com

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

etc.


1
Tenga en cuenta que conseguí que funcione correctamente con las direcciones IP más cortas: 0.0.0.0 y :: 1
Ben Morrow,

gracias, funcionó para mí también. me estaba rascando la cabeza después de restaurar mis configuraciones de vhosts / apache después de actualizar. apreciado.
Gavin

Sí, esto también me lo arregló.
advert2013

1

Mi archivo de hosts siguió siendo ignorado después de editarlo en la edición de texto. Intenté varias formas de arreglar los finales de línea, agregué entradas IPv6 a las entradas IPv4 existentes sin éxito después de la respuesta de JB Smiths anterior . Sospecho que su respuesta funcionaría si mi empresa admite IPv6, lo que descubrí después de mis intentos.

La única solución que funcionó para mí es usar este complemento GUI gratuito para editar el archivo de hosts.

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


1

Encontré este artículo porque Yosemite 10.10.5 no estaba recogiendo los cambios de mi archivo de hosts, y nada de lo que podía hacer era solucionarlo. (Reinicié, intenté enjuagar cachés, seguí todos los consejos que pude encontrar en Internet, etc.).

La respuesta fue tan simple que es vergonzoso, en realidad, pero pensé en compartir. Usé textedit para editar el archivo hosts, y me tomé la libertad de guardar el archivo como hosts.txt. Normalmente notaría algo como esto, pero estoy usando una nueva instalación de Yosemite y todavía no había activado "mostrar todas las extensiones de archivo", así que no parecía que el nombre del archivo hubiera cambiado cuando lo vi en mi escritorio.

Por lo tanto, es bastante obvio, y la mayoría de las personas que leen esta publicación probablemente ya lo hayan hecho, pero asegúrese de verificar que su archivo de hosts esté realmente allí y no haya sido reemplazado por hosts.txt .

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

Para evitar que TextEdit agregue la extensión .txt a los archivos, abra un archivo en Edición de texto y elija Archivo> Guardar como (si no ve el elemento de menú Guardar como , mantenga presionada 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, use ".txt" y deseleccione.


0

Creo que Apple reconocerá esto como un error (presenté uno hoy). Me di cuenta de que las nuevas entradas /etc/hostsse recogen, pero los cambios en las entradas existentes se ignoran. Entonces ... cambiar el nombre de host de una entrada (por ejemplo, web1 a web1a) me proporcionó una solución alternativa.

Entrada VIEJA / etc / hosts: 54.173.164.18 web1

NUEVA entrada / etc / hosts: 54.174.161.12 web1a


sudo dscacheutil -flushcache - vaciará el caché del servicio de directorio.
Kevin Buchs

0

En mi caso, configuraría un .ssh / config

#Host *.ourdemo.ca
  User jumpy
  ProxyCommand ssh ourjumpbox.ca -W %h:%p

¿Te importaría explicar qué hace el archivo de configuración y cómo se relaciona esto con la pregunta?
klanomath

1
La pregunta era por qué se ignoraba una entrada en un archivo local / etc / hosts. En mi caso, se estaba ignorando porque había ordenado hacer un túnel para todo el tráfico a un conjunto de máquinas (* .ourdemo.ca) a través de un cuadro proxy (ourjumpbox.ca). SSH obedeció obedientemente la conexión, de modo que terminó siendo el archivo / etc / hosts del proxy utilizado para resolver la dirección en lugar de mi archivo / etc / hosts local.
Martin Cleaver

0

Tuve un problema muy similar en el que recibí por correo dos filas para agregar a mi /etc/hosts

El dominio contenía un me -gustamy-domain.com

El problema resultó ser el cliente de correo electrónico del remitente, sin importar MS Outlook, que convirtió el ascii -en el -carácter largo que a Microsoft le gusta tanto usar su corrección automática incorporada para sustituirlo por el -suyo -.

El archivo de hosts se veía perfecto y fue difícil encontrar este problema. Cuando eliminé las filas y las escribí manualmente, comenzaron a funcionar.

Fue tan difícil de entender esto, que profundicé en por qué el cliente MacOS debería ignorar el archivo de hosts y pasar directamente a la resolución de nombres.


0

Acabo de tener este problema. Fue causado por copiar / pegar desde hipchat en lugar de escribir la dirección.

El proceso de copia agregó algunos caracteres incorrectos en lugar de espacios y causó el problema.

Reescribir la fila resolvió el problema.


0

Estoy usando la aplicación SelfControl (en realidad en macOS mojave 10.14.4) durante bastante tiempo y pensé en comprobar cómo SelfControl hace sus entradas ... se ven así:

0.0.0.0 xyz.com
:: xyz.com
0.0.0.0 www.xyz.com
:: www.xyz.com

basado en esto cambié todo a mi localhost, así que

127.0.0.1
::1

trabajos.


No estoy seguro de cómo esto responde a la pregunta en absoluto. Parece solo una observación aleatoria, no relacionada con la pregunta.
Tetsujin

1
¿Puede agregar algunos detalles sobre dónde cambió exactamente qué y cómo se relaciona con la pregunta?
nohillside

La pregunta era por qué el archivo de hosts se ignora desde 10.10.1 ... Estaba en la misma situación en que las entradas manuales se ignoraron pero las entradas realizadas a través de la aplicación SelfControl funcionaban según lo previsto. Lo que faltaba con mis entradas anteriores, era la segunda parte, dominios con "www". No pude averiguar qué más estaba mal con mis entradas, ya que todo funcionaba bien antes de 10.10.1.
Needlol
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.