Ottieni migliori sessioni remote su Linux con Mosh e Tmux

Uno dei punti di forza di Linux è il suo orientamento al networking, che è in gran parte dovuto alla sua eredità Unix. C’è un motivo per cui Linux è un sistema operativo preferito dai server.

Il modo principale per accedere in remoto ai server Linux è tramite SSH o Secure Shell. Sebbene sia utile e sicuro, è stato progettato in un’era prima che le connessioni Wi-Fi e cellulari diventassero comuni.

Se sposti il ​​computer su una rete Wi-Fi diversa o lo metti in stato di stop, potresti trovarti disconnesso con uno schermo del terminale apparentemente bloccato.

Perché Mosh + Tmux?

Fortunatamente, ci sono un paio di strumenti che renderanno il calcolo remoto con SSH più facile da usare e più affidabile. Puoi usarli su qualsiasi cosa, da un terminale fisico in un data center a un server domestico, su un server cloud, persino su un’altra macchina desktop con sistema operativo Unix o BSD.

Mosh è uno strumento in cima a SSH che lo rende consapevole del cambiamento delle connessioni di rete, e tmux è un “multiplexer di terminale” che ti permette di preservare una sessione di shell attraverso diversi accessi e persino di condividerli.

Ulteriori informazioni: che cos’è SSH e a cosa serve?

Iniziare con Mosh

Mosh è un progetto open source che fa funzionare SSH su connessioni roaming e intermittenti, poiché molte connessioni wireless sono entrambe.

Puoi cambiare il tuo computer da una rete cablata a una rete cablata, a una rete wireless diversa e la tua connessione rimarrà attiva. Puoi anche mettere il tuo laptop in stop mentre sei connesso e dopo che la rete si è ricollegata, sarai in grado di digitare nella finestra del terminale.

Correlati: gestire le connessioni SSH remote con questi comandi Linux

Se perdi la connessione di rete, Mosh ti dirà che non ha ricevuto notizie dal server remoto. Se il server riprende lentamente i caratteri, sottolineerà ciò che digiti fino a quando non torna l’ultima schermata.

Ci sono più dettagli tecnici in un documento scritto dagli autori, ma installarlo come utente è piuttosto semplice. Mosh è ampiamente disponibile nella maggior parte dei gestori di pacchetti delle distribuzioni Linux. È disponibile anche come app Google Chrome.

Installa Mosh su Linux

Ad esempio, per installare in Ubuntu:

sudo apt install mosh

Ovviamente, sul server dovrà essere installato anche il server Mosh. Il vantaggio di Mosh è che il componente server può essere eseguito in modalità utente, quindi non è necessario essere root per installarlo.

Usare Mosh

Quando vuoi connetterti alla tua macchina remota, digita semplicemente:

mosh username@server

Ovviamente, ti consigliamo di sostituire “nome utente” e “server” con il tuo nome utente e il nome della macchina a cui stai tentando di connetterti.

Consulta la documentazione se hai esigenze più specializzate, come la connessione a una porta diversa.

Se tutto funziona correttamente, avrai una sessione di terminale remoto, solo con SSH. Sarai in grado di impartire comandi allo stesso modo, ma la tua connessione sarà più affidabile.

Iniziare con Tmux

Hai una connessione terminale remota che può sopravvivere ai cambiamenti della rete wireless, ma cosa succede quando sei finalmente connesso?

Potresti eseguire un lavoro che richiede molto tempo, come l’installazione di software o anche un lungo lavoro di compilazione. Cosa succede se ti disconnetti. Il lavoro verrà probabilmente chiuso quando il terminale lo farà.

Inoltre, puoi fare solo una cosa alla volta nel terminale, anche con il controllo del lavoro. Se desideri eseguire un editor a schermo intero, occuperà l’intero terminale.

Tmux è una risposta a questi problemi. È un “multiplexer di terminale” che consente di eseguire più terminali in una finestra. È come un terminale a schede su un desktop Linux, ma molto più flessibile.

Puoi scollegare una sessione e disconnetterti, per tornare in un secondo momento e riprendere da dove eri rimasto. È possibile aprire più finestre di terminale. È possibile modificare un programma in una finestra in un editor e testarlo dalla riga di comando in un altro.

Anche l’installazione di tmux è molto semplice. Come Mosh, è incluso in molti gestori di pacchetti di distro Linux. In Ubuntu, devi semplicemente digitare:

sudo apt install tmux

Ovviamente, dovrai installarlo sulla tua macchina remota per usarlo lì, ma è abbastanza utile, anche localmente.

Quando è installato, avvii tmux usando il comando:

tmux

Verrai quindi avviato in una finestra di terminale, simile a quella che hai avviato localmente. Vedrai una barra di stato che mostra in quale finestra ti trovi.

Tmux divide lo schermo in “finestre” con più “riquadri”, mostrando i propri terminali. Puoi riorganizzare e ridimensionare questi riquadri, con finestre illimitate con i propri riquadri.

Poiché tmux è un programma basato su terminale, è controllato interamente dalla tastiera. Il comando prefisso predefinito per eseguire comandi in tmux è Ctrl + B. Questo può essere modificato nel file di configurazione.

Il file di configurazione dell’utente è .tmux.conf nella directory home. La documentazione contiene maggiori dettagli, ma il numero di personalizzazioni che puoi eseguire è ampio.

Tmux potrebbe avere una curva di apprendimento, ma con altri programmi “difficili” nel mondo Linux / Unix, molti utenti trovano che il tempo dedicato all’apprendimento di questi programmi è ben speso in ciò che lascia loro fare.

Una delle opzioni più potenti è la possibilità di scollegare la sessione e ricollegarla in seguito. Per fare ciò, digita Ctrl + D. Per ricollegarlo, digita “tmux attach” nella shell e ti ritroverai alla tua sessione.

Ciò significa che la tua sessione rimarrà attiva finché lo farà la macchina. Questo metodo è anche popolare per eseguire app di chat come IRC, poiché le persone possono rimanere nelle chat room per molto tempo. È anche possibile condividere sessioni con altre persone, ad esempio per la programmazione in coppia.

Combinando Mosh e Tmux

Il vero potere di una sessione remota deriva dalle combinazioni di Mosh e tmux.

Con Mosh, puoi accedere alla tua macchina remota da qualsiasi luogo e non preoccuparti dell’affidabilità della tua connessione. Se desideri eseguire qualcosa che potrebbe richiedere molto tempo, puoi scollegare la sessione e riprenderla in un secondo momento.

La combinazione di Mosh e tmux ti consentirà la massima affidabilità e flessibilità nei tuoi accessi remoti. C’è molto di più da esplorare solo in tmux che libererà la potenza delle tue sessioni terminali.