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

35

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

Viajo de red en red 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. y conectarme 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 la gente simplemente hackea 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ódigos para admitir mDNS (y otras cosas de zeroconf) en una aplicación de Android específica, 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 el soporte en todo el dispositivo para mDNS y el dominio .local en Android? Tuve problemas para encontrar eso también.

eldarerathis
fuente

Respuestas:

17

No lo creo.

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

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

Es un fastidio, pero AFAIK no es nada menos que lanzar su propia compilación de Android personalizada (o convencer a Google para que la cambie) que realmente podría resolver esto.

natevw
fuente
44
¡Qué tonto! Linux tardó 15 años en 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!
Philipp
77
Archivé un error contra el proyecto Chromium. Destaque (abstenerse de hacer +1 comentarios) si se encuentra con este problema y desea solucionarlo. crbug.com/405925
pwnall
1

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

  1. Configuraciones abiertas
  2. Navega a WiFi
  3. Navega hasta la entrada de tu red WiFi.
  4. Mantenga pulsada la entrada y elija editar.
  5. Activar configuraciones avanzadas
  6. Cambie de DHCP a estático y reemplace el primer servidor DNS (generalmente 8.8.8.8) con el suyo.
  7. Salvar

(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" debería 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 anteriormente) solo se aplicaría al WiFi AP modificado. Así que no te preocupes, podrías afectar a cualquier otro. Si algo se vuelve loco, en cualquier momento puede simplemente eliminar el AP y volver a crearlo.

Izzy
fuente
15
Solo para aclarar; la pregunta original no era realmente sobre el uso del servidor DNS local, sino 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.
Jules
Cuando configuro una dirección IP estática, obtengo inexplicablemente "la red es inalcanzable" en todos los dispositivos en la subred local.
Michael