Jeśli myślimy o zdalnym połączeniu z serwerem, zazwyczaj pierwsze co przychodzi nam do głowy jest SSH. SSH jest protokołem komunikacyjnym, pozwalającym na zdalne podłączenie się do konsoli serwera. SSH jest podstawowym narzędziem każdego administratora serwerów. Nie mnie jednak – każdy kto regularnie pracuje z SSH ma świadomość jego wad, które stara się, z całkiem niezłym efektem – Mosh.
Dlaczego SSH nie jest idealne?
Największym problemem pracy z SSH są opóźnienia wynikające z pracy na niestabilnych połączeniach. Klient SSH wysyła do serwera informację o każdym naciśnięciu klawisza, serwer natomiast musi potwierdzić otrzymanie danych. Dopiero, wpisany znak pojawi się na ekranie naszego komputera. Brzmi powolnie? Tak w istocie jest. Przy stabilnym i szybkim połączeniu, problem ten jest niemalże niezauważalny. Jednak jeśli korzystamy z połączenia mobilnego, potrafi mocno zirytować.
Oprócz tego, chwilowa niedostępność połączenia internetowego, zazwyczaj powoduje zerwanie połączenia SSH i konieczność ponownego zainicjowania sesji. Robiłeś coś ważnego? Trudno, musisz zacząć od początku.
Przyznasz chyba, że w czasach coraz bardziej popularnego internetu mobilnego i pracy w każdym możliwym miejscu – są to istotne wady?
Czym jest Mosh i dlaczego jest lepszy od SSH?
Odpowiedzią na wady SSH jest Mosh – Mobile Shell. Mosh zapewnia nam:
- Stałe połączenie z serwerem. Jeśli połączenie zostanie z jakiegoś powodu rozłączone, Mosh spróbuje się połączyć ponownie, nie restartując sesji terminalowej.
- Przełączanie internetu. Przełączasz się z wifi na połączenie mobilne? Nie ma problemu. Nie utracisz połączenia z serwerem.
- Zmniejszenie opóźnień. Zamiast przesyłać każdy znak osobno, Mosh synchronizuje stany terminala na serwerze i komputerze. Dzięki temu opóźnienia są prawie niezauważalne, nawet na przy korzystaniu ze słabej jakości połączenia internetowego.
Dodatkowo, Mosh nie wymaga osobnego sposobu logowania. Logowanie do serwera odbywa się tak jak dotychczas, przy pomocy SSH. Następnie, uruchamiany jest serwer Mosh, a połączenie z SSH jest zamykane. Do komunikacji używany jest protokół UDP, zamiast TCP jak w przypadku SSH. Każdy datagram UDP jest szyfrowany.
Instalacja Mosh
Instalacja Mosh na serwerze jest bardzo prosta:
sudo apt-get install mosh # Debian i pochodne
sudo yum install mosh # CentOS i pochodne
To wszystko! Nie trzeba niczego dodatkowo konfigurować.
Sposób instalacji klienta Mosh zależy mocno od systemu operacyjnego na komputerze. W tym przypadku – najlepszym rozwiązaniem będzie wejście na stronę Getting Mosh na oficjalnej stronie projektu.
Podsumowanie
Kiedy pierwszy raz użyłem Mosh – byłem zdumiony jak szybkie i wygodne może być połączenie ze zdalnym serwerem. Czy przestałem korzystać z SSH? Nie. Nie mniej jednak, jeśli wiem, że logując się na serwer, spędzę na nim dużo czasu, korzystam z Mosh, aby zapewnić sobie szybkie i niezawodne połączenie.