ttyd 1.3.0 发布 - 终端分享工具

2017-02-20 19:40:36 +08:00
 tsl0922

ttyd 1.3.0 发布了。这个版本添加了一些新的功能还有一些 bug 修复,升级了网页终端模拟器,前端终端模拟器性能有了很大的提升。

该版本主要更新内容如下:


小提示:如果你没有使用 oh-my-zsh 作为 shell ,还可以在启动 ttyd 的时候添加 -t useFlowControl=true 参数开启 xterm.js 的 流量控制功能,这样可以减轻程序有大量输出时前端的卡顿,此功能和 oh-my-zsh 的快捷键冲突,所以默认没有开启。


在这中间还有个 1.2.1 版本更新没有在这里发布,这个版本添加了 SSL 客户端认证支持(应 /t/320488 用户要求)。

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

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

更新历史:

7713 次点击
所在节点    分享创造
20 条回复
abmin521
2017-02-20 22:40:24 +08:00
非常好用 感谢
ik
2017-02-20 23:34:35 +08:00
收藏
imxieke
2017-02-21 00:42:19 +08:00
😎 居然不使用 Coding Pages 不清真啊
zhs227
2017-02-21 01:03:49 +08:00
一直在用着,共享只读控制台给别人看。非常方便。
提两个建议供参考:
1. 登进去以后字母顶着浏览器最左边,看上去太挤,最好能留几个像素的空白出来。
2. 能否支持 HTOP ,类型 google Authenticator 那种二次鉴权。有时候需要在网上共享帐号觉得不是很安全,又懒得上 SSL 。
wwqgtxx
2017-02-21 08:01:25 +08:00
试了一下,发现 ttyd 对 htop 这种应用兼容性很不友好呀,严重的内容错位变形呀
tsl0922
2017-02-21 08:17:19 +08:00
@wwqgtxx 前端的终端模拟器对部分特殊 unicode 字符的支持还不是很完美,这个暂时只能等上游 xterm.js 修复了。
wwqgtxx
2017-02-21 08:19:02 +08:00
@tsl0922 个人感觉有点像 xterm.js 莫名其妙的放大了空格符导致的错位,看着好别扭
tsl0922
2017-02-21 09:08:19 +08:00
@wwqgtxx 应该是空格导致的,我所说的 unicode 字符问题是指类似这个 issue 里的: https://github.com/sourcelair/xterm.js/issues/467 ,你这里也不排除可能和字体有关系,如果有空的话可以去 https://github.com/tsl0922/ttyd/issues 发 issue 附上截图、系统环境和浏览器环境我看看。
tsl0922
2017-02-21 09:08:50 +08:00
应该是空格导致的 > 应该不是空格导致的
tsl0922
2017-02-21 09:34:51 +08:00
imxieke
2017-02-21 10:25:30 +08:00
@tsl0922 #10 我这边出了点小问题
使用 ttyd -p 5000 bash -x login
但会提示:`/bin/login: /bin/login: cannot execute binary file`
但是不使用验证或者 `--credential username:passwd` 是没问题的

我在本地通过 login 切换没毛病:

```
login imxieke (刚刚创建的用户)
Password:
Welcome to Ubuntu 14.04.5 LTS (GNU/Linux 4.4.0-57-generic x86_64)

* Documentation: https://help.ubuntu.com/

26 packages can be updated.
18 updates are security updates.

Your Hardware Enablement Stack (HWE) is supported until April 2019.
*** System restart required ***

The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.


The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

No directory, logging in with HOME=/

```

环境为 Daocloud 提供的 Ubuntu 14.04.5 LTS
sorcerer
2017-02-21 10:29:54 +08:00
这个不错啊,可以不用开终端了
83f420984
2017-02-21 10:31:34 +08:00
能不能直接编译好几个平台的文件?比如 ar71x 、 x86 的,之前想在 ar71x 上编译 15.05 的包,始终报错
tsl0922
2017-02-21 11:22:12 +08:00
@83f420984 把报错信息贴到 github issues 里我看看? ttyd 已经在官方 openwrt 源里了,直接使用最新的 packages feed 就可以编译。
tsl0922
2017-02-21 11:25:09 +08:00
@imxieke 我在 mac 下直接执行 bash -x login 也报和你一样的错误。为什么不直接 执行 login 呢?这样: ttyd -p 5000 login
imxieke
2017-02-21 11:29:48 +08:00
我开始不是太明白咋用的 把 bash 和 login 一起使用了 以为不使用 bash 便不会进入 命令界面
刚刚突然想到 login 之后会自动进入 命令界面
tsl0922
2017-02-21 16:33:51 +08:00
@zhs227 不知道你想要的效果是什么样的? Google Authenticator 那种是 TOTP 算法,这里做两步认证好像没什么太大的意义,但可以考虑做基于 TOTP 的动态密码,每个密码有一定时间的有效期( ttyd 没有 session )。
zhs227
2017-02-22 02:05:04 +08:00
@tsl0922 我说错了,应该是 TOTP 。用一个指定的 secretKey 生成一个 otpauth://totp/Example:alice@google.com?secret=JBSWY3DPEHPK3PXP&issuer=Example 的二维码,导入 Google Authenticator 或者是 Authy ,在登录页面认证动态密码。有动态密码可以考虑不用基本认证密码,增强 root 的安全性。要不有很多服务器要记好多密码
只是个建议,也许不是很有用,个人遇到的情况是服务器较多的时候 TOTP 动态密码比每个服务器使用相同密码要安全
fhefh
2017-02-22 19:26:30 +08:00
nice mark
tsl0922
2017-02-22 23:58:52 +08:00
@zhs227 动态密码在个场景下感觉没那么大的需求,目前不打算做。另外,已经给页面添加 padding ,看起来应该会好些了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/341862

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX