ttyd一个通过网络共享终端的命令行工具

ttyd - 通过网络共享你的终端

ttyd 是一个用于通过网络共享终端的简单命令行工具。

功能

  • 基于 libuvWebGL2 构建,提升速度
  • 功能齐全的终端,支持 CJK 和 IME
  • 支持 ZMODEM (lrzsz) / trzsz 文件传输
  • 支持 Sixel 图片输出 (img2sixel / lsix)
  • 基于 OpenSSL / Mbed TLS 的 SSL 支持
  • 可运行任意自定义命令,并附带选项
  • 支持基本身份验证和许多其他自定义选项
  • 跨平台:macOS、Linux、FreeBSD/OpenBSD、OpenWrt、Windows

❤ 特别感谢 JetBrains 为本项目提供开源许可证。

安装

Install on macOS

  • Install with Homebrew: brew install ttyd
  • Install with MacPorts: sudo port install ttyd

Install on Linux

  • 二进制版本(推荐):从 releases 页面下载
  • 使用 Homebrew 安装:brew install ttyd
  • 安装 snap 包:sudo snap install ttyd --classic
  • 从源代码构建 (debian/ubuntu):
bash 复制代码
sudo apt-get update
sudo apt-get install -y build-essential cmake git libjson-c-dev libwebsockets-dev
git clone https://github.com/tsl0922/ttyd.git
cd ttyd && mkdir build && cd build
cmake ..
make && sudo make install

如果出现以下情况,您可能还需要从源代码编译/安装 libwebsockets libwebsockets-dev 包已过时。

  • Install on OpenWrt: opkg install ttyd
  • Install on Gentoo: clone the repo and follow the directions here.

用法

命令行选项

复制代码
用法:
ttyd [选项] <命令> [<参数...>]

选项:
-p, --port 监听端口(默认值:7681,使用 `0` 表示随机端口)
-i, --interface 绑定的网络接口(例如:eth0)或 UNIX 域套接字路径(例如:/var/run/ttyd.sock)
-U, --socket-owner 启用后,UNIX 域套接字文件的用户所有者(例如:user:group)
-c, --credential 基本身份验证的凭据(格式:用户名:密码)
-H, --auth-header 身份验证代理的 HTTP 标头名称,这将配置 ttyd 以允许 HTTP 反向代理处理身份验证
-u, --uid 运行时使用的用户 ID
-g, --gid 运行时使用的组 ID
-s, --signal 退出命令时发送给命令的信号(默认值: 1,SIGHUP)
-w, --cwd 为子程序设置的工作目录
-a, --url-arg 允许客户端在 URL 中发送命令行参数(例如:http://localhost:7681?arg=foo&arg=bar)
-W, --writable 允许客户端写入 TTY(默认为只读)
-t, --client-option 向客户端发送选项(格式:键=值),重复此操作可添加更多选项
-T, --terminal-type 报告的终端类型,默认值:xterm-256color
-O, --check-origin 不允许来自不同来源的 WebSocket 连接
-m, --max-clients 支持的最大客户端数量(默认值:0,无限制)
-o, --once 仅接受一个客户端,断开连接后退出
-q, --exit-no-conn 所有客户端断开连接后退出
-B, --browser 使用系统默认浏览器打开终端
-I, --index 自定义 index.html 路径
-b, --base-path 预期路径来自反向代理的请求的基本路径(例如:/mounted/here,最大长度:128)
-P, --ping-interval Websocket ping 间隔(秒)(默认值:5)
-6, --ipv6 启用 IPv6 支持
-S, --ssl 启用 SSL
-C, --ssl-cert SSL 证书文件路径
-K, --ssl-key SSL 密钥文件路径
-A, --ssl-ca 用于客户端证书验证的 SSL CA 文件路径
-d, --debug 设置日志级别(默认值:7)
-v, --version 打印版本并退出
-h, --help 打印此文本并退出

阅读 wiki 上的示例用法。

浏览器支持

现代浏览器,请参阅 浏览器支持

替代方案

  • Wetty:基于 Node 的 Web 终端(SSH/登录)
  • GoTTY:基于 Go 的 Web 终端

关于项目

ttyd 是一个用于通过网络共享终端的简单命令行工具。
MIT
C
9,978
1013
125
2016-09-13
2025-07-27

增长趋势 - stars