Tengo un comportamiento muy extraño en un dispositivo Android (Nexus 7) al intentar acceder a aplicaciones de la red local. En lugar de obtener la IP real de la máquina en LAN, el dispositivo Android obtiene la IP pública, lo que significa que Chrome, Firefox u cualquier otro navegador simplemente muestra la página web del router.
Tengo un servidor DNS interno que maneja las redes locales. Haciendo ping
desde un PC funciona correctamente:
$ ping s.pelicandd.com
PING pelicandd.com (192.168.1.15) 56(84) bytes of data.
64 bytes from front.pelicandd.com (192.168.1.15): icmp_seq=1 ttl=64 time=0.524 ms
64 bytes from front.pelicandd.com (192.168.1.15): icmp_seq=2 ttl=64 time=0.578 ms
^C
En un dispositivo HTC One (accedido con adb shell
), también funciona bien:
shell@m7:/ $ ping s.pelicandd.com
PING pelicandd.com (192.168.1.15) 56(84) bytes of data.
64 bytes from front.pelicandd.com (192.168.1.15): icmp_seq=1 ttl=64 time=2.56 ms
64 bytes from front.pelicandd.com (192.168.1.15): icmp_seq=2 ttl=64 time=27.8 ms
^C
Sin embargo, esto es lo que obtengo al hacer el mismo ping
desde Nexus 7:
shell@flo:/ $ ping s.pelicandd.com
PING pelicandd.com (90.78.26.42) 56(84) bytes of data.
64 bytes from LFbn-1-2441-42.w90-78.abo.wanadoo.fr (90.78.26.42): icmp_seq=1 ttl=64 time=2.56 ms
64 bytes from LFbn-1-2441-42.w90-78.abo.wanadoo.fr (90.78.26.42): icmp_seq=2 ttl=64 time=8.63 ms
^C
En lugar de resolver a la IP interna, resuelve a la pública.
La configuración de red es, excepto la dirección IP del dispositivo, exactamente la misma en ambos dispositivos: la configuración de IP está en Estático, y los servidores DNS son los internos. Ambos dispositivos Android están conectados a través de Wi-Fi (a diferencia del PC). Sin embargo, una diferencia importante es que Nexus 7 está utilizando Android 6.0.1, mientras que HTC One utiliza Android 5.0.2.
No hay nm-tool
, dig
o nslookup
en Nexus 7. El dispositivo no está rooteado.
El problema existe desde que compré el dispositivo hace unas semanas, por lo que difícilmente podría ser un problema con la caché DNS.
¿Qué puedo hacer para inspeccionar más a fondo este problema?
0 votos
Primero que nada, debes inspeccionar el problema. Por favor instala IP Tools desde la Play Store, realiza algunas nslookup y así sabremos más. Especialmente el servidor DNS que utiliza Nexus, la búsqueda de DNS, y más. Prueba este IP Tools. Está en idioma polaco, pero por supuesto puedes cambiarlo. Esta herramienta la utilizo en caso de problemas como este.
0 votos
Hm. En Información IP, muestra las direcciones DNS correctas. En la pestaña Búsqueda DNS, se muestra la IP correcta (192.168.1.15). Sin embargo, la pestaña Traceroute muestra la IP pública incorrecta (90.78.26.42).
0 votos
Entonces, en mi opinión, hay algo mal con la entrada de DNS interno para Nexus. Utilizo una configuración similar y todo funciona bien.
0 votos
El DNS interno funciona bien en mi Nexus 6p, Nexus 5, Nexus 10, etc. ¿Has intentado flashear imágenes de fábrica en el Nexus 7 (si su gestor de arranque está desbloqueado) para asegurarte de que está ejecutando software conocido y bueno? (Supongo que lo compraste de segunda mano, ya que el Nexus 7 no es un dispositivo nuevo).
0 votos
Compré el dispositivo de segunda mano, pero hice un restablecimiento de fábrica antes de usarlo, seguido de las actualizaciones hasta la última versión de Android. Imagino que esto es suficiente para asegurarme de que no está ejecutando ningún software personalizado, dado que el dispositivo no está rooteado.
0 votos
Tuve que volver a usar c-ares (c-ares.haxx.se) construido para Android, en lugar del resolver DNS incorporado en Android. Usando c-ares, incluso puedes realizar búsquedas de nombres de host sin un dominio de búsqueda adjunto en redes locales. (por ejemplo, miordenador en lugar de miordenador.local.tld)