Linux Web Terminal—-ttyd
ttyd是一款可以将命令行转到 Web 执行的工具,基于 C 编写的。
https://github.com/tsl0922/ttyd

安装 on macOS
Install with homebrew:
brew install ttyd
安装 on Linux
Binary version : 下载最新版1.7.1 https://github.com/tsl0922/ttyd/releases
源码安装 (debian/ubuntu):
sudo apt-get install build-essential cmake git libjson-c-dev libwebsockets-dev
git clone https://github.com/tsl0922/ttyd.git
cd ttyd && mkdir build && cd build
cmake ..
make && sudo make install
安装 on OpenWrt
opkg install ttyd
详细用法
我们也可以不用 bash,用自己喜欢的 Shell,比如 zsh,命令如下:
<span>ttyd zsh </span>
这样的话浏览器里面的 Shell 就是 zsh 啦:
当然我们也可以更换端口,比如 8000,则可以使用如下命令:
<span>ttyd -p 8000 zsh </span>
这样 ttyd 就可以在 8000 端口运行 HTTP 服务,我们打开 http://localhost:8000/ 就可以执行命令了。
Basic Auth
当然这么直接暴露出去似乎也不太安全,我们可以设置 Basic Auth,使用 -c 这个选项即可指定用户名密码,格式为 username:password,例如我们指定用户名和密码都是 admin,那命令就这么写:
<span>ttyd -p 8000 -c admin:admin zsh </span>
这样打开 http://localhost:8000/ 之后就需要输入用户名密码才可以登录了:
自动打开浏览器
我们还可以使用 -B 命令让它自动打开浏览器:
<span>ttyd -p 8000 -B zsh </span>
这样运行之后,默认的浏览器就会自动打开 http://localhost:8000/,不用我们再去敲网址了,十分方便。
所以,上面这个命令甚至我们还可以做成一个 alias,比如:
<span>alias <span class="attribute">webcmd</span>=<span class="attribute-value">"ttyd -p 8000 -B zsh"</span>; </span>
这样输入 webcmd 就可以轻松打开一个 Web 版命令行了。
Docker 支持
另外 ttyd 还提供了 Docker 镜像,如果你不想安装的话,可以直接启 Docker,比如这样的话就可以在 7681 上启动:
<span>docker run -it --rm -p 7681:7681 tsl0922/ttyd </span>
但这实际上是把容器内部的命令行暴露出来了,如果要暴露宿主机的命令行还需要 mount 下磁盘:
SSH 终端
ttyd 还支持 SSH 终端,命令如下:
<span>ttyd login </span>
这样的话,打开浏览器之后就需要 SSH 登录,输入正确的 SSH 用户名和密码后才能使用。
SSL 支持
如果你想配置 SSL 支持,即支持 HTTPS 的话,可以自己生成证书并添加对应的参数来启动 ttyd,参考链接是:https://github.com/tsl0922/ttyd/wiki/SSL-Usage。
阅读剩余
版权声明:
作者:laifa
链接:https://www.tyhlw.org/?p=356
文章版权归作者所有,未经允许请勿转载。
THE END