GoTTY

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

僤鯓⒐⒋嵵緔 提交于 2020-02-25 22:54:56
这个项目最初的灵感来源于平时操作无线路由器时想在网页上执行一些命令,但是目前的开源的路由器系统( openwrt )没有一个很好的网页终端模拟器,最多也只是支持执行一个命令然后把结果显示到网页上,完全没有交互。有些路由器还不限制 top 之类的命令执行,一执行就可能会直接卡住网页界面。 找了一下类似的程序,发现了 Wetty 和 GoTTY ,但是 Wetty 需要 node 运行环境, GoTTY 编译后的二进制文件太大,多数路由器的 flash 都比较小,不适合集成到路由器固件里。 一直想自己写一个,上周末终于有时间开工,现在算是可以用了,但是目前只实现了基本的 PTY 转发和网页上的显示交互,还不够完善。 项目地址 https://github.com/tsl0922/ttyd 功能特色 C 语言编写,在速度和内存占用上相比其它实现有一些优势 实时交互,网页和服务器端使用 websocket 通信(基于 libwebsockets ) 前端使用 chromium hterm 实现终端模拟,功能完备 安全,支持配置用户名密码认证(Basic Auth),还支持 SSL 加密通信(基于 OpenSSL ) 可以执行任意命令行程序,不只是 bash 之类的 shell 跨平台,可以在 Linux、macOS、 OpenWrt 下运行 安装方法 mac 用户可以直接用