终端分享工具-ttyd
2016-11-27 16:30:48 阿炯

ttyd 是一个新型的命令行程序,可以把任意命令行程序分享到上操作,可以看做是个网页版的远程终端,支持 Linux、macOS、FreeBSD系统,还可以运行在 OpenWrt/LEDE 之类的嵌入式系统上。采用C语言开发并在MIT协议下授权。

功能特色:

C 语言编写,在速度和内存占用上相比其它实现有一些优势
网页和服务器端使用 Websocket 通信(基于 libwebsockets)
前端使用 chromium hterm 实现终端模拟,功能完备(已换为对中文输入更友好的 Xterm.js)
客户端和服务器端支持 SSL 加密通信(基于 OpenSSL)
支持配置用户名密码认证(Basic Auth)
可以执行任意命令行程序,不只是 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 freeoa@192.168.1.1

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

最新版本:1.2
这是 ttyd 的首个正式版本,主要完善了一些基本功能的实现,主要的改进是网页终端模拟器添加了对 CJK 和 IME 的支持,也就是说可以输入中文了。另外,ttyd 也可以在 FreeBSD 下使用了。

项目主页:https://github.com/tsl0922/ttyd