
Hai mai avuto bisogno di mostrare le attività del tuo terminale in tempo reale, che si tratti di risolvere un problema del server con un collega o di mostrare un comando complesso a un amico? Invece di acquisire screenshot o registrare lo schermo, immagina la comodità di condividere la tua sessione di terminale in tempo reale tramite un semplice collegamento web. Questo metodo non solo migliora la collaborazione, ma consente anche una visibilità in tempo reale delle tue attività.
Linux offre diversi metodi per la condivisione dei terminali, tra cui opzioni tradizionali come SSH, strumenti come tmux e screen, nonché utility di registrazione dello schermo come asciinema. Sebbene queste opzioni possano essere efficaci, spesso comportano complessità inutili e dipendenze aggiuntive che possono ostacolare il flusso di lavoro.
Accedi allo strumento da riga di comando ttyd.ttyd semplifica la condivisione del tuo terminale trasformandolo in un’interfaccia web, consentendo a chiunque abbia il collegamento di accedere e persino interagire con la tua sessione senza dover installare software aggiuntivo o configurare impostazioni.
Caratteristiche principali di ttyd
- Utilizza Libwebsockets e libuv per prestazioni eccezionali.
- Utilizza WebSocket per un’esperienza fluida, anche in caso di connettività limitata.
- Supporta ZMODEM grafico per il trasferimento dei file, consentendo agli utenti di trascinare e rilasciare i file direttamente tramite il browser web.
- Include la crittografia SSL/TLS per garantire sessioni sicure, con opzioni di autenticazione.
- Funziona su qualsiasi porta designata e offre compatibilità per l’implementazione su dispositivi come Raspberry Pi.
- Dispone di funzionalità copia/incolla integrate tra il terminale e l’interfaccia web.
- Possibilità di limitare le connessioni simultanee per la gestione delle sessioni.
- Apre automaticamente le sessioni nel browser web predefinito.
- Consente restrizioni di accesso per singolo client per una maggiore sicurezza.
Come installare ttyd su Linux
Per gli utenti Debian o Ubuntu, ttyd potrebbe non essere presente nei repository predefiniti. Tuttavia, l’installazione rimane semplice tramite metodi alternativi, come la compilazione dal codice sorgente.
Per prima cosa assicurati che il tuo sistema sia completamente aggiornato:
sudo apt update && sudo apt upgrade -y
Successivamente, installa le dipendenze necessarie per compilare ttyd:
sudo apt install -y build-essential cmake git libjson-c-dev libwebsockets-dev

Clonare il repository ttyd da GitHub e compilarlo utilizzando i seguenti comandi:
git clone https://github.com/tsl0922/ttyd.git cd ttyd mkdir build && cd build cmake..make sudo make install
Questo è tutto! Ora ttyd è installato sul tuo sistema.
Per altre distribuzioni Linux, è possibile seguire linee guida di compilazione simili o, in alternativa, scaricare un binario precompilato dalla pagina delle release di ttyd su GitHub. Per scaricarlo rapidamente, utilizzare il seguente comando wget:
wget https://github.com/tsl0922/ttyd/releases/download/1.7.7/ttyd.x86_64
Rendere eseguibile il binario scaricato:
chmod +x ttyd.x86_64
Questo metodo rappresenta uno dei metodi più rapidi per rendere ttyd operativo su diverse distribuzioni Linux.È anche possibile utilizzare un gestore di pacchetti universale come Snap per installare ttyd:
sudo snap install ttyd --classic
Una volta installato ttyd, verifica l’installazione inserendo ttyd --version
.
Trasformare il tuo terminale in un’interfaccia web condivisibile
Il modo più semplice per sfruttare ttyd è condividere la sessione shell predefinita. Esegui il seguente comando:
ttyd bash
Questo comando avvierà un server web sulla porta 7681 per impostazione predefinita. Per accedervi, è sufficiente aprire il browser web e andare su http://localhost:7681 o http://your-ip-address:7681.

Il tuo terminale dovrebbe ora essere visibile all’interno di una pagina web e tutti gli utenti della rete locale potranno accedervi sostituendo “localhost” con l’indirizzo IP del tuo computer. Puoi trovare il tuo IP usando ip addr show
o hostname -I
condividendolo con altri.
Oltre a condividere una shell, ttyd consente di esporre altre applicazioni da riga di comando nel browser. Ad esempio, il comando ttyd htop
avvierà direttamente il htop
gestore dei processi, mentre ttyd ttyd vim
o ttyd top
condividerà i rispettivi strumenti.

Se desideri personalizzare il numero di porta per la tua sessione, puoi farlo facilmente utilizzando il -p
flag:
ttyd -p 8080 bash
In questo modo il terminale sarà disponibile sulla porta 8080 anziché sulla porta predefinita 7681.
Per impedire l’accesso non autorizzato, ttyd supporta anche l’autenticazione tramite l’ -c
opzione:
ttyd -c username:password bash

Questa configurazione richiede l’autenticazione HTTP di base, garantendo che chiunque tenti di accedere al terminale debba immettere le credenziali designate. Sebbene un’autenticazione più sofisticata sia preferibile per gli ambienti di produzione, questo metodo è efficace per dimostrazioni informali o reti affidabili.
Inoltre, è possibile creare una sessione di sola lettura, impedendo qualsiasi input agli utenti:
ttyd -R bash
Questo può essere particolarmente vantaggioso per presentazioni o contesti educativi in cui si desidera mantenere il controllo. Al contrario, utilizzare il -W
flag per una sessione scrivibile e interattiva:
ttyd -W bash
Condivisione sicura su Internet
Quando si condivide il proprio terminale su Internet, implementare la crittografia è fondamentale.ttyd offre supporto HTTPS utilizzando il proprio certificato SSL. Se non si dispone di un certificato SSL, è possibile crearne uno autofirmato con OpenSSL a scopo di test; tuttavia, per l’uso in produzione, è consigliabile utilizzare un’autorità di certificazione affidabile come Let’s Encrypt.
Sebbene ttyd sia accessibile di default solo sulla rete locale, spesso è necessario estendere questo accesso esternamente.È possibile farlo in modo sicuro attraverso diversi approcci. Uno dei metodi più semplici è integrare ttyd con un servizio di tunneling come Tailscale o Cloudflare Tunnel, che rende la porta locale disponibile in modo sicuro su Internet tramite un URL pubblico temporaneo. In alternativa, è possibile ospitare ttyd su un VPS o un server cloud con un nome di dominio, consentendo l’accesso HTTPS permanente.
Per configurazioni più avanzate, è possibile associare ttyd esclusivamente a localhost e posizionarlo dietro un proxy inverso come Nginx o Caddy. Questa configurazione consente la gestione della terminazione SSL, dell’autenticazione e del controllo dettagliato degli accessi.
Conclusione
Con ttyd, il complesso processo di condivisione del terminale si trasforma in un’attività semplice, simile alla condivisione di un collegamento ipertestuale.
Lascia un commento