
¿Alguna vez has necesitado mostrar tus actividades en la terminal en tiempo real, ya sea resolviendo un problema del servidor con un compañero o mostrando un comando complejo a un amigo? En lugar de tomar capturas de pantalla o grabar tu pantalla, imagina la comodidad de compartir tu sesión de terminal en vivo mediante un simple enlace web. Este método no solo mejora la colaboración, sino que también permite ver tus actividades en tiempo real.
Linux ofrece varios métodos para compartir terminales, incluyendo opciones tradicionales como SSH, herramientas como tmux y screen, así como utilidades de grabación de pantalla como asciinema. Si bien estas opciones pueden ser efectivas, suelen implicar una complejidad innecesaria y dependencias adicionales que pueden dificultar el flujo de trabajo.
Ingrese a la herramienta de línea de comandos ttyd.ttyd simplifica compartir su terminal transformándola en una interfaz web, permitiendo que cualquier persona con el enlace acceda e incluso interactúe con su sesión sin la necesidad de instalar software adicional o configurar ajustes.
Características principales de ttyd
- Utiliza Libwebsockets y libuv para un rendimiento excepcional.
- Utiliza WebSockets para una experiencia fluida, incluso con conectividad limitada.
- Admite ZMODEM gráfico para transferencias de archivos, lo que permite a los usuarios arrastrar y soltar archivos directamente a través del navegador web.
- Incluye encriptación SSL/TLS para garantizar sesiones seguras, con opciones de autenticación.
- Se ejecuta en cualquier puerto designado y ofrece compatibilidad para la implementación en dispositivos como Raspberry Pi.
- Cuenta con funcionalidad incorporada de copiar y pegar entre la terminal y la interfaz web.
- Capacidad de restringir conexiones simultáneas para la gestión de sesiones.
- Abre sesiones automáticamente en el navegador web predeterminado.
- Permite restricciones de acceso de un solo cliente para una mayor seguridad.
Cómo instalar ttyd en Linux
Para los usuarios de Debian o Ubuntu, es posible que ttyd no esté presente en los repositorios predeterminados. Sin embargo, la instalación es sencilla mediante métodos alternativos, como compilar desde el código fuente.
Comience por asegurarse de que su sistema esté completamente actualizado:
sudo apt update && sudo apt upgrade -y
A continuación, instale las dependencias necesarias para compilar ttyd:
sudo apt install -y build-essential cmake git libjson-c-dev libwebsockets-dev

Clone el repositorio ttyd desde GitHub y compílelo usando los siguientes comandos:
git clone https://github.com/tsl0922/ttyd.git cd ttyd mkdir build && cd build cmake..make sudo make install
¡Eso es todo! Ya tienes ttyd instalado en tu sistema.
Para otras distribuciones de Linux, puede seguir pautas de compilación similares o, alternativamente, descargar un binario precompilado desde la página de lanzamientos de GitHub de ttyd. Para descargarlo rápidamente, use el siguiente comando wget:
wget https://github.com/tsl0922/ttyd/releases/download/1.7.7/ttyd.x86_64
Haga que el binario descargado sea ejecutable:
chmod +x ttyd.x86_64
Este método es una de las maneras más rápidas de que ttyd funcione en varias distribuciones de Linux. También puede utilizar un gestor de paquetes universal como Snap para instalar ttyd:
sudo snap install ttyd --classic
Una vez instalado ttyd, verifique su instalación ingresando ttyd --version
.
Transformando su terminal en una interfaz web compartible
La forma más sencilla de aprovechar ttyd es compartiendo la sesión de shell predeterminada. Ejecute el siguiente comando:
ttyd bash
Este comando iniciará un servidor web en el puerto 7681 de forma predeterminada. Para acceder a él, simplemente abra su navegador web y navegue a http://localhost:7681 o http://your-ip-address:7681.

Tu terminal debería ser visible en una página web, y cualquier usuario de la red local podrá acceder a él sustituyendo «localhost» por la dirección IP de tu equipo. Puedes encontrar tu IP usando ip addr show
o hostname -I
para compartirla con otros.
Además de compartir un shell, ttyd permite exponer otras aplicaciones de línea de comandos en el navegador. Por ejemplo, el comando ttyd htop
iniciará directamente el htop
administrador de procesos, mientras que ttyd vim
`or` ttyd top
compartirá esas herramientas.

Si desea personalizar el número de puerto para su sesión, puede hacerlo fácilmente utilizando la -p
bandera:
ttyd -p 8080 bash
Esto hace que su terminal esté disponible en el puerto 8080 en lugar del 7681 predeterminado.
Para evitar el acceso no autorizado, ttyd también admite la autenticación a través de la -c
opción:
ttyd -c username:password bash

Esta configuración solicita la autenticación HTTP básica, lo que garantiza que cualquier persona que intente acceder a su terminal deba introducir las credenciales designadas. Si bien una autenticación más sofisticada es preferible para entornos de producción, este método es eficaz para demostraciones informales o redes de confianza.
Además, puedes crear una sesión de solo lectura, prohibiendo cualquier entrada a los usuarios:
ttyd -R bash
Esto puede ser especialmente ventajoso para presentaciones o entornos educativos donde se desea mantener el control. Por otro lado, utilice la -W
bandera para una sesión interactiva y con capacidad de escritura:
ttyd -W bash
Intercambio seguro a través de Internet
Al compartir su terminal por internet, implementar el cifrado es crucial.ttyd ofrece compatibilidad con HTTPS mediante su propio certificado SSL. Si no tiene un certificado SSL, puede crear uno autofirmado con OpenSSL para realizar pruebas; sin embargo, para uso en producción, se recomienda utilizar una autoridad de certificación confiable como Let’s Encrypt.
Aunque ttyd solo es accesible en tu red local por defecto, a menudo es necesario ampliar este acceso externamente. Puedes lograrlo de forma segura mediante varias estrategias. Uno de los métodos más sencillos es integrar ttyd con un servicio de tunelización como Tailscale o Cloudflare Tunnel, que permite que tu puerto local esté disponible en internet de forma segura mediante una URL pública temporal. Como alternativa, puedes alojar ttyd en un VPS o servidor en la nube con un nombre de dominio, lo que permite el acceso HTTPS permanente.
Para configuraciones más avanzadas, puede vincular ttyd únicamente a localhost y ubicarlo tras un proxy inverso como Nginx o Caddy. Esta configuración permite gestionar la terminación SSL, la autenticación y un control de acceso detallado.
Conclusión
Con ttyd, el complejo proceso de compartir terminal se transforma en una tarea sencilla, similar a compartir un hipervínculo.
Deja una respuesta