这个项目最初的灵感来源于平时操作无线路由器时想在网页上执行一些命令,但是目前的开源的路由器系统( openwrt )没有一个很好的网页终端模拟器,最多也只是支持执行一个命令然后把结果显示到网页上,完全没有交互。有些路由器还不限制 top 之类的命令执行,一执行就可能会直接卡住网页界面。
找了一下类似的程序,发现了 Wetty 和 GoTTY,但是 Wetty 需要 node 运行环境, GoTTY 编译后的二进制文件太大,多数路由器的 flash 都比较小,不适合集成到路由器固件里.
一直想自己写一个,上周末终于有时间开工,现在算是可以用了,但是目前只实现了基本的 PTY 转发和网页上的显示交互,还不够完善。
项目地址: https://github.com/tsl0922/ttyd
ttyd 基本上是 GoTTY 到 C 语言的移植,所以有一些可以共用的部分是直接使用 GoTTY 里的代码的。
效果:
截图里执行的命令是 bash
,如果想要登陆后才能使用可以执行 login
,这样网页上就和 ssh 登陆一样了。
虽然 ttyd 的目标是运行到路由器上,但是目前只在 PC 的 Mac 和 Linux 机器上测试过,还没交叉编译到路由器上测试过,主要是功能还不够完善,等完善了些再到路由器上测试, ttyd 的开发主要在 Mac 下进行。
欢迎 Star/Fork ,如果有什么意见建议或 bug 可以在 issues 里反馈,或者直接发 PR 贡献代码。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.