终端分享工具 ttyd

MIT
C/C++
跨平台
2016-09-18
tsl0922

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
加载中

评论(2)

tsl0922
tsl0922 软件作者
@回去干活 最新版本已支持 lrzsz
回去干活
回去干活
最重要的是lrzsz要能用.不然还是继续 xshell #ttyd#

ttyd 1.3.1 发布,终端分享工具

ttyd 1.3.1 发布了。这个版本修复了一个严重的 bug,如果你在使用 http basic auth 功能,请尽快升级。 添加 alpine docker 镜像,体积仅有 28M (@dduportal, #38) 修复 windows 下浏览器可能...

2017/03/13 08:43

ttyd 1.3.0 发布,终端分享工具

ttyd 1.3.0 发布了。这个版本的添加了一些新的功能还有一些 bug 修复,升级了网页终端模拟器,性能有了很大的提升。 该版本主要更新内容如下: index 选项: 自定义 index.html 文件路径 (c9f...

2017/02/13 08:11

ttyd 1.2.1 发布,终端分享工具

ttyd 1.2.1 发布了。这个版本主要的改进是添加了对 SSL 客户端认证的支持,客户端必须使用服务器端指定的 CA 签发的证书才能连接,这可以极大的提升安全性。 ChangeLog Enable client certif...

2016/11/28 09:16

ttyd 1.2.0 发布,终端分享工具

ttyd 1.2.0 发布了。 这个版本主要的改进是网页终端模拟器添加了对 CJK 和 IME 的支持,也就是说可以输入中文了。另外,ttyd 也可以在 FreeBSD 下使用了。 ChangeLog Fixed compile error on...

2016/11/14 08:21

ttyd 1.1.0 发布,C 语言编写的命令行程序

ttyd 1.1.0 发布了。 新功能: once 参数: 启动后只接受一个连接并在连接关闭后退出 readonly 参数: 不允许客户端写入数据到 TTY,也就是说加了这个参数后客户端只能看风景了,比如你可以执行...

2016/10/13 07:47

ttyd 1.0.0 发布,C 语言编写的命令行程序

ttyd 1.0.0 发布。这是 ttyd 的首个正式版本,主要完善了一些基本功能的实现,ttyd 有以下功能和特点: C 语言编写,在速度和内存占用上相比其它实现有一些优势 网页和服务器端使用 websocke...

2016/09/26 08:25

没有更多内容

加载失败,请刷新页面

没有更多内容

暂无问答

ttyd -- 分享任意命令行程序到网页上

ttyd 是一个 C 语言编写的命令行程序,可以把任意命令行程序分享到网页上操作,可以看做是个网页版的远程终端。

2016/09/17 13:40
906
3
如何编写开源项目的 README 文档

如何编写开源项目的 README 文档 运营一个开源项目就像在运营着一家 Startup,你期待更多人来使用你的项目,并给你的项目加 Star/提交 PR,但好的项目除了其自身真正契合了开发者的需求外,还...

2016/11/21 01:46
35
0
基础的 Linux 网络命令,你值得拥有

有抱负的 Linux 系统管理员和 Linux 狂热者必须知道的、最重要的、而且基础的 Linux 网络命令合集。在 It’s FOSS 我们并非每天都谈论 Linux 的“命令行方面”。基本上,我更专注于 Linux 的...

2016/10/08 21:51
63
0

没有更多内容

加载失败,请刷新页面

没有更多内容

返回顶部
顶部