
您是否曾經需要即時演示您的終端活動,無論是與同事一起排除伺服器故障,還是向朋友演示複雜的命令?與其截取螢幕截圖或錄製螢幕,不如透過一個簡單的 Web 連結分享您的即時終端會話,這是多麼便捷的體驗。這種方法不僅可以增強協作,還可以即時查看您的活動。
Linux 提供了多種終端共享方法,包括 SSH 等傳統選項、tmux 和 screen 等工具,以及 asciinema 等螢幕錄製實用程式。雖然這些選項可能很有效,但它們通常會帶來不必要的複雜性和額外的依賴關係,從而阻礙您的工作流程。
輸入ttyd 命令列工具。 ttyd 透過將終端轉換為 Web 介面來簡化終端共享,使任何擁有連結的人都可以存取您的終端,甚至與您的會話進行交互,而無需安裝其他軟體或配置設定。
ttyd 的主要功能
- 利用 Libwebsockets 和 libuv 實現卓越的效能。
- 即使在連線受限的情況下,也可以使用 WebSocket 實現無縫體驗。
- 支援圖形化ZMODEM進行檔案傳輸,允許使用者直接透過網頁瀏覽器拖放檔案。
- 包括 SSL/TLS 加密以確保安全會話,並提供身份驗證選項。
- 在任何指定連接埠上運行,並提供在 Raspberry Pi 等裝置上部署的相容性。
- 具有終端機和 Web 介面之間的內建複製/貼上功能。
- 能夠限制會話管理的並發連線。
- 在預設的 Web 瀏覽器中自動開啟會話。
- 啟用單一客戶端存取限制以增強安全性。
如何在 Linux 安裝 ttyd
對於 Debian 或 Ubuntu 用戶,您可能會發現預設儲存庫中沒有 ttyd。不過,透過其他方法(例如從原始碼建置)仍然可以輕鬆安裝。
首先確保您的系統已完全更新:
sudo apt update && sudo apt upgrade -y
接下來安裝編譯ttyd所需的依賴項:
sudo apt install -y build-essential cmake git libjson-c-dev libwebsockets-dev

從 GitHub 克隆 ttyd 儲存庫並使用以下命令進行編譯:
git clone https://github.com/tsl0922/ttyd.git cd ttyd mkdir build && cd build cmake..make sudo make install
就這些!現在你的系統上已經安裝了 ttyd。
對於其他 Linux 發行版,您可以遵循類似的建置指南,或從 ttyd 的GitHub 發布頁面下載預先編譯的二進位。若要快速下載,請使用以下 wget 命令:
wget https://github.com/tsl0922/ttyd/releases/download/1.7.7/ttyd.x86_64
使下載的二進位檔案可執行:
chmod +x ttyd.x86_64
使用此方法是讓 ttyd 在各個 Linux 發行版上運行的最快捷途徑之一。您也可以使用通用軟體套件管理器(例如 Snap)來安裝 ttyd:
sudo snap install ttyd --classic
安裝 ttyd 後,請輸入 來驗證您的安裝ttyd --version
。
將你的終端機變成可共享的 Web 介面
利用 ttyd 最簡單的方法是分享你的預設 shell 會話。執行以下命令:
ttyd bash
此命令將預設在連接埠 7681 上啟動一個 Web 伺服器。要存取它,只需打開 Web 瀏覽器並導航至http://localhost:7681或http://your-ip-address:7681。

您的終端現在應該可以在網頁中看到,任何本地網路使用者都可以透過將「localhost」替換為您機器的 IP 位址來存取它。您可以使用ip addr show
或hostname -I
與他人分享來尋找您的 IP。
除了共用 Shell 之外,ttyd 還允許您在瀏覽器中公開其他命令列應用程式。例如,該命令ttyd htop
將直接啟動htop
進程管理器,而ttyd vim
或ttyd top
將共享相應的工具。

如果您希望自訂會話的連接埠號,則可以使用以下標誌輕鬆實現-p
:
ttyd -p 8080 bash
這使得您的終端可以在連接埠 8080 上可用,而不是預設的 7681。
為了防止未經授權的訪問,ttyd 還透過以下-c
選項支援身份驗證:
ttyd -c username:password bash

此設定會提示進行基本的 HTTP 驗證,確保任何嘗試存取您終端的使用者都必須輸入指定的憑證。雖然更複雜的身份驗證更適合生產環境,但此方法對於非正式演示或受信任的網路來說非常有效。
此外,您可以建立唯讀會話,禁止使用者進行任何輸入:
ttyd -R bash
這對於您希望保持控制的演示或教育環境尤其有利。相反,使用該-W
標誌進行可寫入和互動式會話:
ttyd -W bash
網路上的安全共享
在互聯網上共享終端時,實施加密至關重要。 ttyd 使用您自己的 SSL 憑證提供 HTTPS 支援。如果您沒有 SSL 證書,可以使用 OpenSSL 建立自簽章憑證以進行測試;但對於生產用途,建議使用受信任的憑證授權單位,例如 Let’s Encrypt。
雖然 ttyd 預設只能在本地網路上訪問,但通常需要將此存取權限擴展到外部。您可以透過多種方法安全地實現此目的。最簡單的方法之一是將 ttyd 與 Tailscale 或Cloudflare Tunnel等隧道服務集成,這些服務可以透過臨時的公共 URL 安全地將您的本地端口在互聯網上可用。或者,您可以將 ttyd 託管在具有網域的 VPS 或雲端伺服器上,從而實現永久的 HTTPS 存取。
對於更進階的配置,您可以將 ttyd 單獨綁定到 localhost,並將其置於 Nginx 或 Caddy 等反向代理程式之後。此設定可以處理 SSL 終止、身份驗證和詳細的存取控制。
結論
有了 ttyd,複雜的終端共享過程就變成了簡單的任務,類似於共享超連結。
發佈留言