Przekształć swój terminal w udostępnialną stronę internetową za pomocą ttyd

Przekształć swój terminal w udostępnialną stronę internetową za pomocą ttyd

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

Instalacja narzędzia Ttyd

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.

Udostępnialna strona internetowa utworzona za pomocą Ttyd

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 showlub, hostname -Iaby 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 htopbezpośrednio uruchomi htopmenedżera procesów, a polecenie ttyd vimlub ttyd topudostępni te narzędzia.

Otwieranie wyników narzędzia wiersza poleceń na stronie internetowej

Jeśli chcesz dostosować numer portu dla swojej sesji, możesz to łatwo zrobić za pomocą -pflagi:

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ą -copcji:

ttyd -c username:password bash

Opcja logowania do sesji terminalowej za pomocą Ttyd

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 -Wflagi 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.

Źródło i obrazy

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *