
Czy kiedykolwiek musiałeś zademonstrować swoje działania na terminalu w czasie rzeczywistym, na przykład rozwiązując problem z serwerem ze współpracownikiem lub prezentując znajomemu skomplikowane polecenie? Zamiast robić zrzuty ekranu lub nagrywać ekran, wyobraź sobie wygodę udostępniania sesji terminala na żywo za pośrednictwem prostego łącza internetowego. Ta metoda nie tylko usprawnia współpracę, ale także pozwala na wgląd w Twoje działania w czasie rzeczywistym.
Linux oferuje różne metody udostępniania terminala, w tym tradycyjne opcje, takie jak SSH, narzędzia takie jak tmux i screen, a także narzędzia do nagrywania ekranu, takie jak asciinema. Chociaż te opcje mogą być skuteczne, często wiążą się z niepotrzebną złożonością i dodatkowymi zależnościami, które mogą utrudniać pracę.
Wprowadź narzędzie wiersza poleceń ttyd.ttyd ułatwia udostępnianie terminala, przekształcając go w interfejs sieciowy, umożliwiając każdej osobie posiadającej łącze dostęp, a nawet interakcję z sesją bez konieczności instalowania dodatkowego oprogramowania lub konfigurowania ustawień.
Główne cechy ttyd
- Wykorzystuje Libwebsockets i libuv dla uzyskania wyjątkowej wydajności.
- Wykorzystuje technologię WebSockets, aby zapewnić płynne działanie nawet przy ograniczonej łączności.
- Obsługuje graficzny protokół ZMODEM do przesyłania plików, umożliwiając użytkownikom przeciąganie i upuszczanie plików bezpośrednio przez przeglądarkę internetową.
- Obejmuje szyfrowanie SSL/TLS w celu zapewnienia bezpieczeństwa sesji, z opcjami uwierzytelniania.
- Działa na dowolnym wyznaczonym porcie i zapewnia kompatybilność z urządzeniami typu Raspberry Pi.
- Posiada wbudowaną funkcjonalność kopiuj/wklej pomiędzy terminalem i interfejsem internetowym.
- Możliwość ograniczenia liczby jednoczesnych połączeń na potrzeby zarządzania sesjami.
- Automatycznie otwiera sesje w domyślnej przeglądarce internetowej.
- Włącza ograniczenia dostępu pojedynczego klienta w celu zwiększenia bezpieczeństwa.
Jak zainstalować ttyd w systemie Linux
Użytkownicy Debiana lub Ubuntu mogą zauważyć, że ttyd nie jest obecny w domyślnych repozytoriach. Instalacja pozostaje jednak prosta dzięki alternatywnym metodom, takim jak kompilacja ze źródeł.
Zacznij od upewnienia się, że Twój system jest w pełni zaktualizowany:
sudo apt update && sudo apt upgrade -y
Następnie zainstaluj niezbędne zależności do kompilacji ttyd:
sudo apt install -y build-essential cmake git libjson-c-dev libwebsockets-dev

Sklonuj repozytorium ttyd z GitHub i skompiluj je, używając następujących poleceń:
git clone https://github.com/tsl0922/ttyd.git cd ttyd mkdir build && cd build cmake..make sudo make install
To wszystko! Masz już ttyd zainstalowany w swoim systemie.
W przypadku innych dystrybucji Linuksa możesz postępować zgodnie z podobnymi instrukcjami kompilacji lub pobrać prekompilowany plik binarny ze strony GitHub poświęconej wydaniom ttyd. Aby szybko go pobrać, użyj następującego polecenia wget:
wget https://github.com/tsl0922/ttyd/releases/download/1.7.7/ttyd.x86_64
Zmień pobrany plik binarny na wykonywalny:
chmod +x ttyd.x86_64
Użycie tej metody zapewnia jedną z najszybszych metod uruchomienia ttyd w różnych dystrybucjach Linuksa. Do instalacji ttyd można również użyć uniwersalnego menedżera pakietów, takiego jak Snap:
sudo snap install ttyd --classic
Po zainstalowaniu ttyd sprawdź poprawność instalacji, wpisując ttyd --version
.
Przekształcanie terminala w udostępniany interfejs internetowy
Najprostszym sposobem wykorzystania ttyd jest udostępnienie domyślnej sesji powłoki. Wykonaj następujące polecenie:
ttyd bash
To polecenie domyślnie uruchomi serwer WWW na porcie 7681. Aby uzyskać do niego dostęp, wystarczy otworzyć przeglądarkę internetową i przejść do adresu http://localhost:7681 lub http://your-ip-address:7681.

Twój terminal powinien być teraz widoczny na stronie internetowej, a wszyscy użytkownicy sieci lokalnej będą mogli uzyskać do niego dostęp, zastępując „localhost” adresem IP Twojego komputera. Możesz znaleźć swój adres IP, używając ip addr show
lub, hostname -I
aby udostępnić go innym.
Oprócz udostępniania powłoki, ttyd umożliwia udostępnianie innych aplikacji wiersza poleceń w przeglądarce. Na przykład polecenie ttyd htop
bezpośrednio uruchomi htop
menedżera procesów, a polecenie ttyd vim
lub ttyd top
udostępni te narzędzia.

Jeśli chcesz dostosować numer portu dla swojej sesji, możesz to łatwo zrobić za pomocą -p
flagi:
ttyd -p 8080 bash
Dzięki temu Twój terminal będzie dostępny na porcie 8080 zamiast domyślnego 7681.
Aby zapobiec nieautoryzowanemu dostępowi, ttyd obsługuje również uwierzytelnianie za pomocą -c
opcji:
ttyd -c username:password bash

Ta konfiguracja wymaga podstawowego uwierzytelniania HTTP, gwarantując, że każda osoba próbująca uzyskać dostęp do terminala musi wprowadzić odpowiednie dane uwierzytelniające. Chociaż bardziej zaawansowane uwierzytelnianie jest preferowane w środowiskach produkcyjnych, ta metoda sprawdza się w przypadku nieformalnych demonstracji lub zaufanych sieci.
Dodatkowo możesz utworzyć sesję tylko do odczytu, uniemożliwiającą użytkownikom wprowadzanie jakichkolwiek danych:
ttyd -R bash
Może to być szczególnie korzystne podczas prezentacji lub w kontekście edukacyjnym, gdzie chcesz zachować kontrolę. Z drugiej strony, użyj -W
flagi w sesji z możliwością zapisu i interaktywnością:
ttyd -W bash
Bezpieczne udostępnianie przez Internet
Podczas udostępniania terminala przez internet, kluczowe jest wdrożenie szyfrowania.ttyd oferuje obsługę protokołu HTTPS z wykorzystaniem własnego certyfikatu SSL. Jeśli nie posiadasz certyfikatu SSL, możesz utworzyć certyfikat podpisany samodzielnie za pomocą OpenSSL do celów testowych, jednak do użytku produkcyjnego zaleca się skorzystanie z zaufanego urzędu certyfikacji, takiego jak Let’s Encrypt.
Chociaż domyślnie ttyd jest dostępny tylko w sieci lokalnej, często zachodzi potrzeba rozszerzenia tego dostępu na zewnątrz. Można to bezpiecznie osiągnąć na kilka sposobów. Jedną z najprostszych metod jest integracja ttyd z usługą tunelowania, taką jak Tailscale lub Cloudflare Tunnel, która bezpiecznie udostępnia port lokalny w internecie za pośrednictwem tymczasowego publicznego adresu URL. Alternatywnie, ttyd można hostować na serwerze VPS lub w chmurze z nazwą domeny, co umożliwia stały dostęp przez HTTPS.
W przypadku bardziej zaawansowanych konfiguracji można powiązać ttyd wyłącznie z localhost i umieścić go za odwrotnym serwerem proxy, takim jak Nginx lub Caddy. Taka konfiguracja umożliwia obsługę zakończenia SSL, uwierzytelniania i szczegółowej kontroli dostępu.
Wniosek
Dzięki ttyd skomplikowany proces udostępniania terminala zmienia się w proste zadanie, podobne do udostępniania hiperłącza.
Dodaj komentarz