SSH hace tiempo que no es solo sobre terminales remotos. En el teléfono se convierte en una navaja suiza para conexiones privadas, proxies y rutas de escape discretas. Cuando una Wi‑Fi pública parece sospechosa, cuando hay que alcanzar el NAS doméstico desde una cafetería o cuando se quiere encaminar el tráfico a través de un servidor conocido, salva un túnel SSH sencillo. Y sí, es perfectamente cómodo hacerlo en Android, sin trucos complicados.
En esta reseña analizaremos qué se entiende por túnel, cuáles son las variantes, en qué se diferencian y dónde resultan útiles en la vida real. Paralelamente veremos herramientas populares. Para algunos bastan un par de toques en una aplicación, a otros les conviene la consola honesta en Termux. Ambos enfoques funcionan.
Agregaré algo de práctica cotidiana. Habrá ejemplos de ejecución, errores típicos y pequeños trucos que ahorran batería y nervios. Todo sin fanatismo. Nada de magia, solo configuración cuidadosa y entender hacia dónde va el tráfico.
¿Para qué un túnel SSH en el smartphone?
La razón principal es simple. A menudo nos conectamos a redes en las que no confiamos plenamente: puntos públicos en cafeterías y hoteles, redes guest corporativas, routers de conocidos con firmware antiguo. Un túnel crea un corredor cifrado hasta su servidor, dentro del cual el tráfico ya no es tan fácil de husmear. No es una bala de plata, pero el nivel de riesgo baja notablemente.
La segunda razón es la comodidad. Por SSH puede “pasarse” una aplicación concreta o una pestaña del navegador mediante un proxy local. No es necesario enviar todo el teléfono por una VPN. A veces es incluso mejor. Por ejemplo, cuando el banco bloquea un IP extranjero y solo necesita abrir de forma privada un par de sitios técnicos.
La tercera ventaja es el acceso a una red doméstica u oficina. Se redirige un puerto y se accede a la interfaz web del NAS o al panel de k8s, se consultan logs y se cierra. Todo localmente, sin agujeros extra en el router y sin exponer servicios al exterior.
La cuarta motivación es el rendimiento. Una VPN completa es buena, pero puede consumir batería y reducir velocidad en dispositivos débiles. El túnel SSH es más ligero, se arranca bajo demanda y se apaga con un toque. Especialmente valioso en móviles antiguos, donde cada mAh cuenta.
La quinta razón es el control. SSH ofrece ajuste fino de cifrados, claves, restricciones y timeouts. Se pueden habilitar solo los algoritmos necesarios, limitar acceso por IP y crear un usuario separado con privilegios mínimos. Al final se obtiene una solución ordenada y predecible.
Tres tipos de reenvío de puertos: qué elegir y cuándo
En el mundo SSH todo gira en torno a tres mecanismos: reenvío local, reenvío remoto y dinámico. Son similares en esencia, pero resuelven tareas distintas. Si se comprende uno, los otros encajan casi automáticamente.
Reenvío local L. Se abre un puerto en el teléfono y se redirige hacia un servicio interno en la red de destino. El ejemplo es así: abrimos 127.0.0.1:8080 en Android y en realidad vamos a 192.168.1.10:80 a través de SSH. Útil para paneles de administración que no están expuestos a Internet.
Reenvío remoto R. Aquí al revés: el puerto se abre en el servidor y el tráfico llega hasta su teléfono. Es para conexiones inversas. Útil cuando se está tras NAT y hay que dar acceso puntual a una aplicación en el dispositivo. Caso raro, pero a veces salva.
Reenvío dinámico D. Favorito de viajeros y paranoicos. Se levanta un proxy SOCKS5 en el teléfono y se envía a través de él el tráfico de las aplicaciones o del navegador que se desee. El enrutamiento es flexible y los sitios ven la IP de su servidor. Se configura en pocos clics, se cierra la pestaña y se olvida.
En resumen: el reenvío local sirve para “llegar hacia dentro”, el remoto para “abrir hacia fuera” y el dinámico para “tener un proxy privado”. No hay uno universalmente mejor; la elección depende de la tarea y del contexto.
Aplicaciones y métodos en Android
Hay dos aproximaciones. Clientes gráficos con toggles sencillos y Termux con OpenSSH en consola. El primer camino es más fácil para empezar y bastante potente. La consola ofrece libertad total y gusta a quienes están habituados al servidor y desean precisión.
ConnectBot sigue siendo una clásica opción abierta y fiable. Soporta claves, reenvío de puertos y no está sobrecargado. Para muchas tareas es suficiente. El sitio oficial es minimalista, pero funciona con estabilidad.
JuiceSSH pone el acento en la comodidad. Perfiles, plugins, pantallas limpias y acceso rápido a puertos. Soporta reenvío y configurar SOCKS no es complicado. Ideal para quien valora interfaz y quiere menos ajustes manuales.
Termius apuesta por “todo en uno”. Sincronización en la nube, listas de hosts elegantes y agentes de claves. Conveniente si SSH se usa a diario en varios dispositivos. Las funciones básicas son gratuitas y lo avanzado llega por suscripción.
Termux es un Linux auténtico en el bolsillo. Se instala el paquete openssh y luego todo es como en un servidor. Ventajas: flexibilidad y scripts. Inconvenientes: se requieren comandos y algo de disciplina. La página oficial del proyecto está aquí.
| Herramienta | Tipo | Reenvío L R D | SOCKS5 localmente | Claves y agentes | Coste | Recurso oficial |
|---|---|---|---|---|---|---|
| ConnectBot | Cliente | Sí Sí Sí | Sí | Sí, básico | Gratis | connectbot.org |
| JuiceSSH | Cliente | Sí Sí Sí | Sí | Sí, cómodo | Funciones básicas gratis | juicessh.com |
| Termius | Cliente | Sí Sí Sí | Sí | Sí, más nube | Freemium | termius.com |
| Termux + OpenSSH | Consola | Sí Sí Sí | Sí, parámetro D | Sí, plenamente | Gratis | termux.dev • openssh.com |
Ejemplos paso a paso de configuración práctica
Empecemos por el escenario más habitual: querer abrir web de forma segura a través de un servidor conocido. En un cliente gráfico se crea un perfil, se indica usuario, clave, puerto 22 y se activa el reenvío dinámico. Normalmente aparece una opción tipo “Enable port forwarding” y se configura “Dynamic 1080”. Tras conectar, en el navegador se pone SOCKS5 127.0.0.1 puerto 1080. Listo: las pestañas van por el túnel.
La variante en consola con Termux es sencilla. Se instalan paquetes, se generan claves y se conecta. El comando para proxy dinámico es:
ssh -D 1080 -N user@server. Añada -C para compresión y -o ServerAliveInterval=30 para estabilidad. El navegador se configura igual, indicando el SOCKS5 local.
El reenvío local sirve para paneles privados. Ejemplo: hay que abrir un NAS en 192.168.1.10:5001 que no está expuesto. El comando en Termux sería:
ssh -L 127.0.0.1:8443:192.168.1.10:5001 -N user@server. Ahora en el teléfono abra https://127.0.0.1:8443. En clientes gráficos, el equivalente se configura en Port Forwards como tipo Local.
El reenvío remoto aparece menos, pero genera escenarios interesantes. Supongamos que una app en el teléfono levanta un web local en 127.0.0.1:9000 y un colega debe verlo. Si tiene un servidor con IP pública, haga:
ssh -R 8081:127.0.0.1:9000 user@server. El colega abre http://server:8081 y ve la página. Vigile permisos en sshd_config: la opción GatewayPorts cambia el comportamiento.
Un par de opciones útiles para robustez: -o ExitOnForwardFailure=yes hace que falle inmediatamente si el reenvío no se levanta. -o ControlMaster=auto -o ControlPersist=10m crea un canal multiplexado y ahorra recursos. En clientes gráficos opciones similares suelen estar en parámetros avanzados de sesión.
- Genere una clave SSH en el teléfono y añada la parte pública en
~/.ssh/authorized_keysdel servidor. - Desactive la autenticación por contraseña en el servidor y mantenga solo claves.
- Compruebe que la hora en el teléfono y el servidor esté sincronizada; eso reduce cortes.
- Separe perfiles. Un perfil para proxy dinámico, otro para túneles locales.
- Pruebe el enrutamiento. En el navegador abra una página que muestre “mi IP” y verifique que sea la del servidor.
Seguridad, rendimiento y trucos
SSH es fiable, pero la comodidad puede convertirse en una vía de entrada. No dé permisos excesivos a los clientes y no ejecute con root donde no haga falta. Para túneles cree una cuenta en el servidor sin shell. En Linux se puede usar la shell /usr/sbin/nologin y restricciones en authorized_keys.
Mantenga las claves en orden. Una pareja de claves separada para el teléfono, con duración corta y, si es necesario, frase de paso en la clave privada. Si usa Termius con nube, active protección de cuenta y 2FA. En ConnectBot y JuiceSSH verifique que las claves no estén sueltas sin contraseña ni copia de seguridad.
Sobre velocidad: no tema activar la compresión con -C, especialmente en redes móviles. Para proxy dinámico configure reglas en el navegador para que medios pesados vayan directos y sitios sensibles por SOCKS. Así se equilibra privacidad y velocidad.
El puerto 22 a veces se filtra. Alternativas útiles son puertos como 443 en el servidor (si no interfiere con HTTPS) o 2222. Lo importante es no romper otros servicios. En el cliente basta indicar el puerto adecuado en el perfil.
Y casos problemáticos: algunas aplicaciones ignoran el proxy del sistema y conectan directo. En ese caso solo sirve una VPN completa o un reproxy a nivel de firewall. Android es diverso, así que pruebe específicamente las apps críticas de su flujo.
- No mezcle tráfico personal y laboral. Use perfiles y claves separadas.
- Aplique actualizaciones. Tanto cliente como servidor OpenSSH deben estar al día.
- Registre lo mínimo. Logs demasiado detallados también son un rastro.
- Controle la batería. Mantenga sesiones largas con el móvil en carga o con timeouts agresivos.
- Confíe solo en su propio servidor. Cuentas ajenas para túneles a menudo acaban con captura de tráfico.