Ocitli jste se někdy v situaci, kdy jste potřebovali někomu ukázat, co přesně ve svém terminálu děláte? Možná řešíte problém se serverem s kolegou nebo předvádíte složitou sekvenci příkazů příteli. Jistě, můžete pořizovat snímky obrazovky nebo nahrávat svou obrazovku, ale nebylo by úžasné, kdybyste mohli sdílet svou živou relaci terminálu prostřednictvím jednoduchého webového odkazu? Tento přístup usnadňuje spolupráci a poskytuje přehled o tom, co se děje na vašem počítači, v reálném čase.
Linux vám již nabízí několik způsobů sdílení terminálů. Například máte tradiční metody jako SSH, nástroje jako tmux a screen a nahrávací nástroje jako asciinema. I když tyto metody v určitých případech fungují, často přidávají další kroky nebo závislosti, které vás zpomalují.
To je místonástroj příkazového řádku ttydNamísto toho, abyste ostatní nutili instalovat software nebo si zahrávali s konfiguracemi, ttyd promění váš terminál na webovou stránku. Nyní může kdokoli s odkazem otevřít svůj prohlížeč a sledovat vaši relaci nebo s ní dokonce pracovat.
Co může ttyd dělat?
- ttyd využívá Libwebsockets a libuv pro bleskově rychlý výkon.
- Používá WebSockets pod kapotou, díky čemuž je zážitek hladký a citlivý i přes slabší připojení.
- Podporuje grafický ZMODEM pro přenos souborů a integruje se s lrzsz pro přetahování souborů přímo v prohlížeči.
- Zahrnout šifrování SSL/TLS pro zabezpečení a podporu ověřování.
- ttyd lze snadno spustit na libovolném portu, který se vám líbí, a díky kompatibilitě s křížovou kompilací jej můžete spustit i na Raspberry Pi.
- Poskytujte vestavěnou podporu kopírování/vkládání mezi prohlížečem a terminálem.
- Může omezit maximální počet souběžných připojení.
- Automaticky otevírat relace ve vašem prohlížeči.
- Omezte přístup na jednoho klienta současně.
Nainstalujte ttyd na Linux
Pokud používáte Debian nebo Ubuntu, ttyd nemusí být k dispozici ve výchozích úložištích. Ale nebojte se, stále jej můžete snadno nainstalovat pomocí jiných možností, jako je vytváření ze zdroje.
Nejprve se ujistěte, že je váš systém aktuální:
sudo apt update && sudo apt upgrade -yNainstalujte závislosti potřebné pro sestavení ttyd:
sudo apt install -y build-essential cmake git libjson-c-dev libwebsockets-devNaklonujte zdrojový kód ttyd z GitHubu a vytvořte jej pomocí těchto příkazů:
git clone https://github.com/tsl0922/ttyd.git
cd ttyd
mkdir build && cd build
cmake ..
make
sudo make installA to je vše. Nyní máte nainstalovaný ttyd.
Pro ostatní distribuce můžete použít stejnou možnost ručního sestavení. Případně můžete získat předkompilovaný binární soubor z ttyd'sStránka vydání GitHubupro vaši architekturu (jako pro většinu amd64). Nebo si jej můžete stáhnout pomocí tohoto příkazu wget:
wget https://github.com/tsl0922/ttyd/releases/download/1.7.7/ttyd.x86_64Udělejte to spustitelným:
chmod +x ttyd.x86_64To je pravděpodobně nejrychlejší způsob, jak spustit ttyd na jakékoli distribuci Linuxu. K instalaci ttyd můžete také použít univerzálního správce balíčků, jako je snap:
sudo snap install ttyd --classicJakmile nainstalujete ttyd pomocí některé z těchto metod, zadejtettyd --versionpro potvrzení, že je správně nainstalován.
Nejzákladnějším použitím ttyd je sdílení vaší výchozí shellové relace. Chcete-li to provést, stačí spustitttydnásledovaný příkazem, který chcete sdílet. V tomto případě je to bash (nebo zsh, fish atd.):
ttyd bashTento příkaz ve výchozím nastavení spustí webový server na portu 7681. Chcete-li ověřit, otevřete prohlížeč a navštivte stránkuhttps://localhost:7681nebohttps://vaše-ip-adresa:7681.

Nyní uvidíte svůj terminál spuštěný na webové stránce. Kromě toho může kdokoli ve vaší síti přistupovat k tomuto terminálu nahrazením localhost IP adresou vašeho počítače. Svou IP můžete najít pomocíip addr shownebohostname -I, pak jej sdílejte s ostatními.
Nejste také omezeni na sdílení shellu. V prohlížeči lze zpřístupnit jakýkoli program příkazového řádku. Například běháníttyd htopspustí se přímo dohtopprocesní manažer, zatímcottyd vimnebottyd topbude místo toho sdílet tyto nástroje.

Pokud nechcete použít výchozí port, můžete také zadat svůj vlastní. s-pvlajka:
ttyd -p 8080 bashNyní je váš terminál k dispozici na portu 8080 namísto výchozího 7681.
Spuštění otevřeného terminálu přístupného komukoli není moudrá volba, takže ttyd nabízí možnosti ověření pomocí-cvlajka:
ttyd -c username:password bash
Tím se vytvoří základní výzva k ověření HTTP. Každý, kdo se pokouší získat přístup k vašemu terminálu, musí zadat zadané přihlašovací údaje. Pro produkční prostředí budete chtít něco robustnějšího, ale pro rychlé ukázky nebo důvěryhodné sítě to funguje perfektně.
Můžete také nastavit svou relaci pouze pro čtení, čímž zabráníte vstupu z prohlížeče:
ttyd -R bashTo je užitečné pro workshopy nebo prezentace, kde si chcete zachovat kontrolu. Na druhou stranu použijte-Wpokud výslovně chcete zapisovatelnou, interaktivní relaci.
Přečtěte si více:Oprava Steamu se nezdařilo načíst webovou stránku Neznámá chyba 138/130
ttyd -W bashSdílení přes veřejnou síť
Při sdílení přes internet se šifrování stává nezbytným. ttyd vám umožňuje povolit HTTPS pomocí vašeho vlastního certifikátu SSL. Pokud ještě nemáte certifikáty, můžete si vytvořit certifikáty s vlastním podpisem pro testování s OpenSSL, i když pro produkci je nejlepší použít důvěryhodného poskytovatele, jako je Let’s Encrypt.
Ve výchozím nastavení je ttyd přístupný pouze ve vaší místní síti, ale někdy jej budete chtít sdílet s někým mimo vaši místní síť. Toho můžete bezpečně dosáhnout několika způsoby. Nejjednodušší přístup je spárovat ttyd s tunelovací službou, jako je tailscale neboTunel Cloudflare, která bezpečně zpřístupní váš místní port internetu prostřednictvím dočasné veřejné adresy URL. Alternativně můžete spustit ttyd na VPS nebo cloudovém serveru s názvem domény, díky čemuž bude váš terminál trvale přístupný přes HTTPS.
Pro pokročilejší nastavení můžete ttyd svázat pouze s localhostem a umístit jej za reverzní proxy, jako je nginx nebo Caddy, který zvládne ukončení SSL, autentizaci a jemné řízení přístupu.
Závěrečné myšlenky
ttyd převezme komplikovaný úkol sdílení terminálu a zjednoduší jej jako sdílení hypertextového odkazu. Kromě toho, pokud se chcete naučit, jak sdílet svou relaci Tmux v Linuxu, podívejte se na tuto příručku.













