ttyd - 终端分享工具


MIT
跨平台
C/C++

软件简介

ttyd 是一个 C 语言编写的命令行程序,可以把任意命令行程序分享到网页上操作,可以看做是个网页版的远程终端,支持
Linux、macOS、FreeBSD系统,还可以运行在
OpenWrt/LEDE 之类的嵌入式系统上。

功能特色:

  • C 语言编写,在速度和内存占用上相比其它实现有一些优势
  • 网页和服务器端使用 Websocket 通信(基于 libwebsockets
  • 前端使用 chromium hterm 实现终端模拟,功能完备(已换为对中文输入更友好的 Xterm.js
  • 客户端和服务器端支持 SSL 加密通信(基于 OpenSSL
  • 支持配置用户名密码认证(Basic Auth)
  • 支持使用 lrzsz 传输文件(ZMODEM 协议)
  • 可以执行任意命令行程序,不只是 bash 之类的 shell
  • 跨平台支持,可以在 Linux、macOS、OpenWrt 下运行

截图里执行的命令是 bash,如果想要登陆后才能使用可以执行 login,这样网页上就和 ssh 登陆一样了。

ttyd 还可以有很多有趣的玩法,例如:

  • 如果你想给网页上的每个人开个 docker 容器玩,可以用下面的命令启动 ttyd,这样每次打开网页都会进入 docker 容器内的 shell:

    ttyd docker run -it --rm ubuntu bash
    
  • 如果你想一打开网页就能直接 ssh 到另一个机器上(省去进入 bash 再执行 ssh),可以这样启动 ttyd:

    ttyd ssh root@192.168.1.1
    
  • 你甚至还可以直接执行一个 vim,这样打开进入网页后就只有一个 vim 程序可以操作:

    ttyd vim