1 votos

¿Cómo hacer que Termius busque primero los nombres de host en la red local?

Tengo cuatro dispositivos:

  1. PC con Windows 10
  2. Teléfono Android (v6.0.1)
  3. Router de Internet
  4. "servername" (Raspberry Pi 4)

Todos están conectados localmente usando Wifi (no es que deba importar) usando la configuración más simple posible imaginable. Todos los dispositivos tienen acceso a Internet. Todo se comunica con todo lo demás sin problemas, excepto cuando trato de usar Termius en Android para acceder a "servername".

En el PC puedo simplemente emitir el comando putty fred@servername y puedo conectarme sin dificultades, como es de esperar.

Sin embargo, Termius en el teléfono Android no parece entender que "servername" está conectado localmente a la misma red wifi que el propio teléfono. Si abro una sesión local de SSH en el propio teléfono y hago un ping a "servername", parece que va tras una dirección IP de Internet aleatoria ( 92.xxx.xxx.xxx ) y no puede iniciar la sesión.

Si utilizo la dirección IP local del servidor ( 192.168.xxx.xxx ) entonces Termius puede SSH a él sin problemas.

Entonces, ¿cómo puedo convencer a Termius (versión gratuita) para que entienda los nombres de host de la red local? No encuentro ninguna configuración que corresponda a este problema.

1voto

Jack Wade Puntos 231

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?

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X