¿Cómo hacer que mDNS funcione para Chrome en Android?

¿Hay alguna forma de conectarse a http://mylaptop.local/ usando Chrome en Android, o hay otro navegador que funcione?

Viajo de una red a otra con mi computadora portátil y mi teléfono y, a menudo, tengo que conectar mi teléfono a un sitio web en mi computadora portátil. Con Safari en un iPhone, simplemente puedo usar http://mylaptop.local/ (generalmente presionando recargar en una ventana abierta del navegador), pero con mi dispositivo Android siempre tengo que averiguar la IP actual de mi computadora portátil e ingresarla a mano. y conéctese a él (no controlo muchas de las redes en las que estoy y parece que nunca tienen DNS integrado con DHCP).

He buscado una respuesta y parece que la mayoría de las personas simplemente solucionan los problemas usando DNS estático, o controlan DHCP y DNS, ninguno de los cuales se aplica a mi situación. También veo bibliotecas de código para admitir mDNS (y otras cosas de zeroconf) en una aplicación específica de Android, por lo que tal vez haya un complemento de Chrome, o algún otro navegador que lo admita.

Además, ¿hay alguna palabra oficial sobre la compatibilidad de todo el dispositivo con mDNS y el dominio .local en Android? Tuve problemas para encontrar eso también.

Respuestas (2)

No me parece.

El sistema de resolución de DNS en las plataformas de Apple tiene soporte incorporado para mDNS, por lo que casi cualquier aplicación eventualmente termina usando la getaddrinfofunción central y admite mDNS en URL y nombres de host y demás.

En Android y otras plataformas, incluso si hay un demonio de DNS de multidifusión en ejecución y bibliotecas disponibles para usarlo, las búsquedas de DNS "típicas" no lo hacen . Entonces, si bien los lanzamientos recientes de Android brindan a los desarrolladores algunas funciones de mDNS como parte de la plataforma, la mayoría no se desvive (como tendría que hacer) para usarlas.

Es un fastidio, pero AFAIK no hay nada menos que crear tu propia versión personalizada de Android (o convencer a Google para que la cambie) que realmente podría resolver esto.

¡Eso es tan patético! Le tomó como 15 años a Linux comunicarse correctamente con Windows y Mac, ahora vemos la misma historia nuevamente. mDNS no es compatible con Android. AirPrint no es compatible con Android. ¡Vamos, la interoperabilidad debe convertirse en la regla!
Presenté un error contra el proyecto Chromium. Marca con una estrella (abstente de comentarios +1) si te encuentras con este problema y deseas que se solucione. crbug.com/405925

Eso no es culpa del navegador, sino de la forma en que Android maneja DHCP: simplemente ignora el servidor DNS ofrecido y se apega a su DNS de Google preconfigurado, que por supuesto no conoce sus nombres de host locales. Así que aquí está cómo solucionar esto:

  1. Abrir configuración
  2. Navegar a Wi -Fi
  3. Navega hasta la entrada de tu red WiFi.
  4. Mantenga presionada la entrada, elija editar.
  5. Activar Configuración avanzada
  6. Cambie de DHCP a estático y reemplace el primer servidor DNS (generalmente 8.8.8.8) con el suyo propio
  7. Ahorrar

(opcionalmente, puede intentar volver a DHCP después de haber cambiado el servidor DNS y ver si se mantiene este último)

Ahora, Android debería usar su servidor DNS primero y cambiar al secundario solo si el suyo no puede resolverlo. Lo que significa que su "mylaptop.local" debe encontrarse ahora, desde Chrome o cualquier otro navegador y también desde cualquier otra aplicación.

Antes de preguntar: Esta configuración (como se describe arriba) solo se aplicaría al WiFi AP modificado. Así que no te preocupes, podrías afectar a cualquier otro. Si algo sale mal, en cualquier momento puede simplemente eliminar el AP y volver a crearlo.

Solo para aclarar; la pregunta original no era en realidad sobre el uso del servidor DNS local, sino sobre el uso de mDNS (también conocido como Bonjour) junto con el nombre de dominio especial ".local" que en algunos sistemas está configurado para emitir consultas mDNS en lugar de DNS.
Cuando configuro una dirección IP estática, inexplicablemente obtengo "no se puede acceder a la red" en todos los dispositivos de la subred local.