Verwandeln Sie Ihr Terminal in eine teilbare Webseite mit ttyd - Machen Sie Technik einfacher

Index
  1. Was kann ttyd tun?
  2. ttyd auf Linux installieren
  3. Verwandle dein Terminal in eine teilbare Webseite
    1. Freigabe über öffentliches Netzwerk
  4. Fazit

Mit ttyd kannst du dein Terminal einfach über einen Weblink teilen, was die Zusammenarbeit erleichtert und Echtzeit-Einblicke ermöglicht, ohne dass zusätzliche Software erforderlich ist.

Hast du dich jemals in einer Situation befunden, in der du jemandem genau zeigen musstest, was du in deinem Terminal machst? Vielleicht debuggt du ein Serverproblem mit einem Kollegen oder demonstrierst einer Freundin eine komplexe Befehlssequenz. Sicher, du könntest Screenshots machen oder deinen Bildschirm aufnehmen, aber wäre es nicht großartig, einfach deine Live-Terminal-Session über einen einfachen Weblink zu teilen? Dieser Ansatz erleichtert die Zusammenarbeit und bietet Echtzeit-Einblicke in das, was auf deinem Rechner passiert.

Linux bietet bereits einige Möglichkeiten, Terminals zu teilen. Zum Beispiel hast du traditionelle Methoden wie SSH, Tools wie tmux und screen sowie Aufnahmetools wie asciinema. Obwohl diese Methoden in bestimmten Fällen funktionieren, fügen sie oft zusätzliche Schritte oder Abhängigkeiten hinzu, die dich verlangsamen.

Hier kommt das ttyd Kommandozeilenwerkzeug ins Spiel. Anstatt andere zu zwingen, Software zu installieren oder Konfigurationen vorzunehmen, verwandelt ttyd dein Terminal in eine Webseite. Jetzt kann jeder mit dem Link seinen Browser öffnen und deine Sitzung beobachten oder sogar damit interagieren.

Was kann ttyd tun?

  • ttyd nutzt Libwebsockets und libuv für blitzschnelle Leistung.
  • Es verwendet WebSockets im Hintergrund, was die Erfahrung auch über schwächere Verbindungen flüssig und reaktionsschnell hält.
  • Es unterstützt grafisches ZMODEM für Dateiübertragungen und integriert sich mit lrzsz, um Dateien direkt im Browser per Drag & Drop zu ziehen und abzulegen.
  • Es bietet SSL/TLS-Verschlüsselung für Sicherheit und unterstützt Authentifizierung.
  • ttyd kann problemlos an jedem gewünschten Port ausgeführt werden und ist mit Cross-Compiling kompatibel, sodass du es sogar auf einem Raspberry Pi betreiben kannst.
  • Bietet integrierte Copy/Paste-Unterstützung zwischen Browser und Terminal.
  • Kann die maximale Anzahl gleichzeitiger Verbindungen beschränken.
  • Öffnet Sitzungen automatisch in deinem Browser.
  • Schränkt den Zugriff auf einen einzelnen Client gleichzeitig ein.

ttyd auf Linux installieren

Wenn du Debian oder Ubuntu verwendest, ist ttyd möglicherweise nicht in den Standard-Repositories verfügbar. Aber keine Sorge, du kannst es trotzdem leicht mit anderen Optionen installieren, wie z.B. dem Bauen aus dem Quellcode.

Stelle zunächst sicher, dass dein System auf dem neuesten Stand ist:

sudo apt update && sudo apt upgrade -y

Installiere die Abhängigkeiten, die zum Bauen von ttyd erforderlich sind:

sudo apt install -y build-essential cmake git libjson-c-dev libwebsockets-dev

Clone den ttyd-Quellcode von GitHub und baue ihn mit diesen Befehlen:

git clone https://github.com/tsl0922/ttyd.git
cd ttyd
mkdir build && cd build
cmake ..
make
sudo make install

Und das war's. Du hast nun ttyd installiert.

Für andere Distributionen kannst du die gleiche manuelle Build-Option verwenden. Alternativ kannst du eine vorkompilierte Binärdatei von der GitHub-Release-Seite von ttyd für deine Architektur (wie amd64 für die meisten) herunterladen. Oder du kannst es mit diesem wget-Befehl herunterladen:

wget https://github.com/tsl0922/ttyd/releases/download/1.7.7/ttyd.x86_64

Mache es ausführbar:

chmod +x ttyd.x86_64

Das ist wahrscheinlich der schnellste Weg, ttyd auf jeder Linux-Distribution zum Laufen zu bringen. Du kannst auch einen universellen Paketmanager wie snap verwenden, um ttyd zu installieren:

sudo snap install ttyd --classic

Sobald du ttyd mit einer dieser Methoden installierst, gib ttyd --version ein, um zu bestätigen, dass es korrekt installiert ist.

Verwandle dein Terminal in eine teilbare Webseite

Die grundlegendste Nutzung von ttyd besteht darin, deine Standard-Shell-Sitzung zu teilen. Dafür führst du einfach ttyd gefolgt von dem Befehl aus, den du teilen möchtest. In diesem Fall ist es bash (oder zsh, fish usw.):

ttyd bash

Dieser Befehl startet standardmäßig einen Webserver auf Port 7681. Um dies zu überprüfen, öffne deinen Browser und besuche http://localhost:7681 oder http://deine-ip-adresse:7681.

Du wirst jetzt dein Terminal innerhalb einer Webseite sehen. Außerdem kann jeder in deinem Netzwerk auf dieses Terminal zugreifen, indem er localhost durch deine IP-Adresse ersetzt.

Die IP-Adresse der Maschine. Sie können Ihre IP-Adresse mit ip addr show oder hostname -I finden und sie dann mit anderen teilen.

Sie sind auch nicht auf das Teilen einer Shell beschränkt. Jedes Kommandozeilenprogramm kann im Browser bereitgestellt werden. Zum Beispiel führt das Ausführen von ttyd htop direkt in den htop Prozessmanager, während ttyd vim oder ttyd top diese Werkzeuge stattdessen freigeben.

Wenn Sie den Standardport nicht verwenden möchten, können Sie auch Ihren eigenen angeben. Mit dem -p Flag:

ttyd -p 8080 bash

Jetzt ist Ihr Terminal auf Port 8080 statt auf dem Standardport 7681 verfügbar.

Ein offenes Terminal zu betreiben, das für jedermann zugänglich ist, ist keine weise Option, daher bietet ttyd Authentifizierungsoptionen mit dem -c Flag:

ttyd -c benutzername:passwort bash

Dies erstellt eine grundlegende HTTP-Authentifizierungsaufforderung. Jeder, der auf Ihr Terminal zugreifen möchte, muss die angegebenen Zugangsdaten eingeben. Für Produktionsumgebungen möchten Sie etwas Robusteres, aber für schnelle Demonstrationen oder vertrauenswürdige Netzwerke funktioniert dies perfekt.

Sie können Ihre Sitzung auch schreibgeschützt machen, um Eingaben aus dem Browser zu verhindern:

ttyd -R bash

Dies ist nützlich für Workshops oder Präsentationen, bei denen Sie die Kontrolle behalten möchten. Verwenden Sie hingegen -W, wenn Sie ausdrücklich eine schreibbare, interaktive Sitzung wünschen.

ttyd -W bash

Freigabe über öffentliches Netzwerk

Bei der Freigabe über das Internet wird Verschlüsselung unerlässlich. ttyd ermöglicht es Ihnen, HTTPS mit Ihrem eigenen SSL-Zertifikat zu aktivieren. Wenn Sie noch keine Zertifikate haben, können Sie selbstsignierte für Tests mit OpenSSL erstellen, obwohl es sich für die Produktion empfiehlt, einen vertrauenswürdigen Anbieter wie Let's Encrypt zu verwenden.

Standardmäßig ist ttyd nur in Ihrem lokalen Netzwerk zugänglich, aber manchmal möchten Sie es mit jemandem außerhalb Ihres lokalen Netzwerks teilen. Dies können Sie sicher auf verschiedene Weise erreichen. Der einfachste Ansatz ist, ttyd mit einem Tunneling-Dienst wie Tailscale oder Cloudflare Tunnel zu kombinieren, der Ihren lokalen Port sicher über eine temporäre öffentliche URL ins Internet freigibt. Alternativ können Sie ttyd auf einem VPS oder Cloud-Server mit einem Domainnamen ausführen, wodurch Ihr Terminal dauerhaft über HTTPS zugänglich ist.

Für fortgeschrittene Setups können Sie ttyd nur an localhost binden und es hinter einem Reverse-Proxy wie nginx oder Caddy platzieren, der SSL-Terminierung, Authentifizierung und präzise Zugriffskontrolle verwalten kann.

Fazit

ttyd nimmt die komplizierte Aufgabe des Terminal-Sharings und macht sie so einfach wie das Teilen eines Hyperlinks. Darüber hinaus, wenn Sie lernen möchten, wie Sie Ihre Tmux-Sitzung in Linux teilen, schauen Sie sich diesen Leitfaden an.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Go up