Entonces, ¿cómo puedo convencer a Termius (versión gratuita) para que entienda los nombres de host de la red local?
De hecho, tienes que convencer al sistema operativo Android, no a una aplicación específica. La resolución de los nombres de host es manejada por la biblioteca C de Android a la que las aplicaciones están vinculadas a través de las API en el momento de la compilación.
En el PC puedo simplemente emitir el comando putty fred@servername
y puedo conectarme sin dificultades, como es de esperar.
No has mencionado qué router Wi-Fi estás utilizando y si tienes un servidor DHCP/DNS funcionando en la red local o no. Pero para resolver los nombres de host locales en Android, debe tener un servidor DNS local en ejecución. Normalmente el router Wi-Fi es el servidor DHCP/DNS.
No encuentro ninguna configuración que corresponda a este problema.
Esa es la parte difícil, tienes que configurar tu teléfono para que utilice un servidor DNS local, pero Android no ofrece una forma sencilla de hacerlo.
Si abro una sesión local de SSH en el propio teléfono y hago un ping servername
entonces parece que va detrás de alguna dirección IP de Internet al azar ( 92.xxx.xxx.xxx
) y no puede iniciar la sesión.
Indica que el teléfono Android está enviando consultas DNS a Internet. Tienes que asegurarte de que las consultas DNS se envían sólo al servidor DNS local. Los servidores DNS públicos no saben qué nombres de host has configurado en tu red privada. Android ama mucho a Google, por lo que a menudo encontrará consultas que van a 8.8.8.8
(puede ser cuando el router está anunciar el servidor DNS IPv6 ). Configurar IP estática en la configuración de Wi-Fi para establecer la dirección IP del servidor DNS local como primer (y preferiblemente único) DNS. O si tienes Root puedes usar el firewall incorporado en el kernel de Android netfilter
para forzar un servidor de nombres. Dado que el DNS utiliza el puerto UDP 53
, hacer una traducción de direcciones de red de destino (DNAT):
~# iptables -t nat -I OUTPUT -p udp --dport 53 -j DNAT --to 192.168.1.1:53
La solución sin root que funciona tanto para los datos Wi-Fi como para los datos móviles es utilizar una aplicación VPN como Anfitriones virtuales que intercepta el tráfico DNS y realiza consultas al servidor DNS configurado.
Esto debería resolver su problema.
Para más detalles, consulte ¿Cómo hacer ping a un host de la red local por nombre de host? .
Relacionado: ¿Cómo funciona el DNS en Android?