Después de actualizar a Mac OSX Lion, descubrí que / etc / hosts ya no se busca en primer lugar para la resolución de nombres. Esto conduce a algunos efectos secundarios como:
- Las entradas en / etc / hosts se resuelven terriblemente lentas
- No puede anular los dominios existentes, p. Ej. 127.0.0.1 www.google.com
- Si obtiene entradas de dominio de búsqueda de DHCP, digamos .lan, y algún tipo gracioso configuró localhost.lan en algo más que 127.0.0.1 en el DNS local, ya no podrá comunicarse con su localhost.
¿Este comportamiento es intencionado? ¿Tiene algún sentido? Y lo más importante, ¿cómo puedo volver al antiguo comportamiento?
macos
dns
osx-lion
hosts-file
Meik
fuente
fuente
Respuestas:
Creo que lo importante es que Lion maneja los TLD .local de manera diferente porque está reservado para algunas funciones de DNS de multidifusión (utilizadas por Bonjour). La única forma que encontré para resolver este problema es usando un TLD diferente para los hosts de desarrollo (es decir: .dev). Funciona bien para mí, ¡espero que sea útil para otros!
fuente
http://foo.dev/
; Después de eso, Chrome se dará cuenta de quefoo.dev
es un dominio y no una consulta.Con respecto a la anulación de dominios en el archivo de hosts, descubrí que, en algunas circunstancias, Lion consulta la dirección IPv6 de un dominio si detecta que un dominio no es accesible a través de la red IPv4.
Descubrí esto cuando noté algunos anuncios que nunca antes había visto en Snow Leopard porque había redirigido los dominios de anuncios a
127.0.0.1
. Encendí Wireshark y noté consultasAAAA
(registros DNS IPv6) después de lasA
consultas IPv4 (IPv4). Los servidores de anuncios tienen direcciones IPv6 y pudieron mostrarme su contenido.La solución a esto es tener un
entrada para cada
entrada en su archivo de hosts.
Curiosamente, si tiene un servidor web local ejecutándose
127.0.0.1:80
y su navegador recibe una respuesta del servidor web (error o no), noAAAA
se emite ninguna consulta, ya que parece estar satisfecho de que una conexión TCP era al menos posible.En una nota relacionada, si hace un uso intensivo del archivo de hosts (para bloqueo de anuncios, desarrollo web local, etc.), es posible que desee considerar ejecutar su propio sistema de resolución de DNS local. Hay un impacto considerable en el disco / CPU por tener que leer
/etc/hosts
en cada solicitud, por lo que le conviene mantener ese archivo muy ligero.Una ventaja de ejecutar algo como
dnsmasq
localmente (además del aumento significativo del rendimiento) es que puede redirigir dominios completos de nivel superior a su máquina local. Esto le permite tener todo el espacio de nombres * .dev para el desarrollo (por ejemplo), sin tener que ingresar individualmente cada dominio que desea resolver localmente en/etc/hosts
fuente
/etc/hosts
: el sistema operativo almacenará en caché el archivo si se usa con frecuencia.El problema fue que hice un enlace simbólico al archivo / etc / hosts. Si / etc / hosts es un archivo simple, todo está bien.
fuente
Actualización (2): OSX 10.10.5 trae el regreso de
mDNSResponder
.Actualización: OSX 10.10 Yosemite ha reemplazado mDNSResponder con "discoveryd". No he actualizado, así que no estoy seguro del comportamiento descubierto con búsquedas de DNS y
/etc/hosts
.El sistema de resolución de DNS en Lion es el
mDNSResponder
proceso.Puede estar pensando "pero mDNSResponder es el respondedor dns de multidifusión". Tienes razón; para eso fue originalmente, y aún cumple esta función. Sin embargo, en las versiones más recientes de MacOS, también realiza búsquedas de host estándar.
En Lion, no parece volver a leerse automáticamente
/etc/hosts
cuando cambia, al menos no siempre. MatarmDNSResponder
(y permitir que se reinicie automáticamente) parece solucionar el problema.debería hacer el truco.
a continuación está mi respuesta original para la posteridad. Supongo que aún podría ser un problema en algunos casos.
Asegúrese de que su
/etc/hosts
archivo sea un archivo de texto de estilo Unix, con avances de línea como final en lugar de cr.La edición con TextWrangler o un editor de texto Unix debería preservar el archivo.
Si su archivo ya está estropeado, intente esto para solucionarlo
crédito por esta corrección a:
http://techpatio.com/2011/guides-how-to/fixed-mac-osx-lion-etc-hosts-bugs-dns
fuente
He tenido este problema por un tiempo, ya que estoy trabajando con un equipo de desarrolladores, se hizo necesario usar .local en lugar de .dev o .localhost, este artículo me pareció muy útil.
iTand.me - Dominios locales de Lion y hosts, etc.
En resumen;
Pero si tiene que usar .local, la solución más elegante que he encontrado es la utilidad dscl. Usarlo es muy sencillo. Para agregar un host llamado mydev.local y apuntarlo al localhost, simplemente haga esto:
Para ver todos los hosts definidos actualmente y sus IP
Y para eliminar un host:
En general, es bastante sencillo y funciona bien. Todavía preferiría poder editar / etc / hosts, pero esta es una mejor alternativa a tener que cambiar el nombre de todos nuestros servidores .local.
fuente
Antes de pasar de Snow Leopard a Lion, tenía varias entradas específicas de aplicaciones
/etc/hosts
, como esta:Después de la actualización, la carga de mis aplicaciones locales fue MUY lenta. Noté que el retraso ocurrió antes de que la solicitud apareciera en el archivo de registro, y que una vez que lo hizo, la aplicación en sí fue tan rápida como de costumbre.
Ahora tengo dos líneas por aplicación, así:
... y todo vuelve a ser rápido.
¿Aparentemente esto agrega direcciones IPv6? No lo entiendo del todo, de verdad, pero funciona.
fuente
Mi situación era similar, pero los retrasos, de exactamente 5 segundos, solo ocurrieron para las URL que terminan en '.local'. Al ver sitios que terminaron en '.dev', no hubo demoras.
Algunos de los otros desarrolladores de mi oficina tenían este problema, mientras que otros no. Esperaba una solución simple y no quería cambiar el nombre del sitio a '.local' debido a otras dependencias.
Ejecuté el siguiente comando en la Terminal y diferencié mi salida con algunos otros usuarios en la oficina.
Esta sección fue la única diferencia:
Mi Mac estaba vinculada a mi cuenta de iCloud y tenía habilitado Volver a mi Mac. Una vez que desactivé Back To My Mac, la resolución adicional desapareció y el retraso de 5 segundos desapareció.
fuente
Vaya, qué pesadilla. He leído absolutamente todo sobre este tema y todo lo que se ha sugerido hasta ahora se acerca mucho a lo que estaba experimentando, pero ninguna de las soluciones funcionó para mí.
Y descubrí por qué.
A diferencia de otros, no estaba usando / etc / hosts para configurar dominios locales. Mi archivo / etc / hosts estaba en stock y solo contenía las entradas necesarias para la interfaz de bucle invertido y el host de transmisión. Además, era un archivo Unix correctamente codificado, ya que soy el tipo de persona que solo lo editaría desde la línea de comandos usando emacs. Y, gracias a Dios, no tuve que recurrir a ejecutar mi propio servidor DNS como DNSmasq para solucionar el problema.
(Para ser claros, el síntoma que me trajo aquí a este problema fue que emacs tardó unos 10 segundos en iniciarse, pero solo cuando estaba conectado a wifi. Si apagaba el wifi, emacs se iniciaría instantáneamente como se esperaba).
Mi solución: mi computadora portátil tiene un nombre, "terminador". (Sí, su exterior de aluminio brillante me hizo pensar en el personaje de Arnold Schwarzenegger). Solo necesitaba agregar entradas a / etc / hosts para el nombre de la máquina en sí:
Encontré el nombre de mi host ejecutando un comando simple en la terminal:
... que volvió con la salida: "terminador". Después de cambiar / etc / hosts para que contenga esas dos entradas, emacs ahora puede resolver rápidamente el nombre de mi computadora portátil.
Espero que esto ayude a alguien.
fuente
Tuve problemas de velocidad al usar OSX Lion como caja de desarrollo web ... Usando una combinación de sugerencias, recurrí a deshabilitar la red ipv6 y enrutar ipv6 a localhost6 ... las cosas se aceleraron un poco ...
/ etc / hosts ...
fuente
Creo que ha habido algunas correcciones de errores. He visto muchos problemas mencionados y ninguno de ellos parece aplicarse actualmente (por ejemplo, poner varios alias en una sola línea ahora funciona bien para mí).
En cualquier caso, parece que con Lion, Apple realizó algunos cambios drásticos en mDNSResponder que maneja todas las búsquedas de DNS y (con Lion al menos) también maneja el almacenamiento en caché de / etc / hosts. Para mí, las búsquedas hacia adelante también funcionan. Pero las búsquedas inversas (por ejemplo, buscar 1.2.3.4 en lugar de google.com) no funcionan.
Después de mucho dolor, parece que mDNSResponder convierte esta búsqueda en 4.3.2.1.in-addr.arpa y realiza una búsqueda de nombre. Esta puede ser la forma en que DNS prefiere operar, pero no funciona en absoluto con / etc / hosts.
A menos que, por supuesto, agregue un alias de 4.3.2.1.in-addr.arpa para cada host, donde 4.3.2.1 es la dirección IP en el orden opuesto al que está acostumbrado a ver. Esto arregla todo para mí. Aquí hay un ejemplo de entrada de / etc / hosts:
1.2.3.4 foo foo.example.com alias.example.com 4.3.2.1.in-addr.arpa
fuente