订货商城

你的位置:【欧冠体育竞猜 手机网页登陆】 > 订货商城 > 在阅读器内里运行敕令行,真香!


在阅读器内里运行敕令行,真香!

发布日期:2022-08-07 03:44    点击次数:202

 

从前我看过一篇《万物皆可 API》,这个名目就是把一些脚本的执行终局输出到了网页内里。

然则这个照旧有良多改进空间,比喻说 UI 能丢脸些,以至能执行交互敕令该多好,最后思来想去,它的究极状态方就是一个 Web 版的 Terminal (终端)吗?

尔后原本我还想着对名目举行鼎新来着,然则想一想,终究假定要鼎新成一个 Web 版的 Terminal,这个必然已经有开源完成为了。

是以我就起头搜,最后搜到几个还不错的。

Web Terminal  ttyd:https://github.com/tsl0922/ttyd,一款可以或许将敕令行转到 Web 执行的器材,基于 C 编写的。  gotty:https://github.com/yudai/gotty,和 ttyd 同样,只不过是 Go 言语写的,但最新更新是在 2017 年了,估量失修了。  wetty:https://github.com/butlerx/wetty,基于 Node.js 开发的,也可以将敕令行转到 Web 执行,然则需求基于 SSH 登录,着实就是个 Web 版的 SSH 终端。  Secure Shell (Chrome App):Google 阅读器插件,也可以供应网页版 SSH 终端。  tmate:https://tmate.io/,从 tmux 编削而来,可以或许支持 Terminal 分享。

颠末一番试用,我集团首推的照旧 ttyd,别的的几个要么是基于 SSH 的,要么不怎么好用或收场回护了。

上面我就来介绍下 ttyd 的俭朴用法。

按部就班

按部就班着实极度俭朴,我用的是 Mac,所以用 HomeBrew 间接按部就班即可: 

brew install ttyd 

假定你用的是 Windows、Linux,依然也可以支持,按部就班可以或许参考 https://github.com/tsl0922/ttyd#installation 章节。

运用

ttyd 支持良多功用设置,完备敕令以下: 

ttyd is a tool for sharing terminal over the web  USAGE:      ttyd [options] <co妹妹and> [<arguments...>]  VERSION:      1.6.3  OPTIONS:      -p, --port              Port to listen (default: 7681, use `0` for random port)      -i, --interface         Network interface to bind (eg: eth0), or UNIX domain socket path (eg: /var/run/ttyd.sock)      -c, --credential        Credential for Basic Authentication (format: username:password)      -u, --uid               User id to run with      -g, --gid               Group id to run with      -s, --signal            Signal to send to the co妹妹and when exit it (default: 1, SIGHUP)      -a, --url-arg           Allow client to send co妹妹and line arguments in URL (eg: http://localhost:7681?arg=foo&arg=bar)      -R, --readonly          Do not allow clients to write to the TTY      -t, --client-option     Send option to client (format: key=value), repeat to add more options      -T, --terminal-type     Terminal type to report, default: xterm-256color      -O, --check-origin      Do not allow websocket connection from different origin      -m, --max-clients       Maximum clients to support (default: 0, no limit)      -o, --once              Accept only one client and exit on disconnection      -B, --browser           Open terminal with the default system browser      -I, --index             Custom index.html path      -b, --base-path         Expected base path for requests coming from a reverse proxy (eg: /mounted/here)      -P, --ping-interval     Websocket ping interval(sec) (default: 300)      -6, --ipv6              Enable IPv6 support      -S,订货商城 --ssl               Enable SSL      -C, --ssl-cert          SSL certificate file path      -K, --ssl-key           SSL key file path      -A, --ssl-ca            SSL CA file path for client certificate verification      -d, --debug             Set log level (default: 7)      -v, --version           Print the version and exit      -h, --help              Print this text and exit  Visit https://github.com/tsl0922/ttyd to get more information and report bugs. 

可以或许看到,这里可运用 -p 来指定运行端口,运用 -c 指定登录密码等等。

根抵运用

我们来试下,最根抵的敕令以下: 

ttyd bash 

这样就运用启动了一个 Web 版的 bash,运行终局以下:

这里体现是在 7681 上运行的,那我们就能关上 http://localhost:7681/,就能间接运行敕令了:

极度丝滑。

看了下迎面的传输和谈是 WebSocket,所以奔忙动性照旧有保障的:

固然,我们也可以不消 bash,用自身爱好的 Shell,比喻 zsh,敕令以下:

ttyd zsh 

这样的话阅读器内里的 Shell 就是 zsh 啦:

绑定端口

固然我们也可以变更端口,比喻 8000,则可运用以下敕令: 

ttyd -p 8000 zsh 

这样 ttyd 就能在 8000 端口运行 HTTP 服务,我们关上 http://localhost:8000/ 就能执行敕令了。

Basic Auth

固然这么间接表露进来宛若也不太安好,我们可以或许设置 Basic Auth,运用 -c 这个选项即可指定用户名密码,名目为 username:password,譬如我们指定用户名和密码都是 admin,那敕令就这么写: 

ttyd -p 8000 -c admin:admin zsh 

这样关上  http://localhost:8000/ 当前就需求输入用户名密码才可以或许登录了:

自动关上阅读器

我们还可运用 -B 敕令让它自动关上阅读器: 

ttyd -p 8000 -B zsh 

这样运行当前,默认的阅读器就会自动关上 http://localhost:8000/,不消我们再去敲网址了,异常方便。

所以,上面这个敕令以至我们还可以或许做成一个 alias,比喻: 

alias webcmd="ttyd -p 8000 -B zsh"; 

这样输入 webcmd 就能轻松关上一个 Web 版敕令行了。

Docker 支持

此外 ttyd 还供应了 Docker 镜像,假定你不想按部就班的话,可以或许间接启 Docker,比喻这样的话就能在 7681 上启动: 

docker run -it --rm -p 7681:7681 tsl0922/ttyd 

但这着实是把容器外部的敕令行表露进去了,假定要表露宿主机的敕令行还需求 mount 下磁盘:

SSH 终端

ttyd 还支持 SSH 终端,敕令以下: 

ttyd login 

这样的话,关上阅读器当前就需求 SSH 登录,输入准确的 SSH 用户名和密码后材干运用。

SSL 支持

假定你想设置 SSL 支持,即支持 HTTPS 的话,可以或许自身生成证书并增加对应的参数来启动 ttyd,参考链接是:https://github.com/tsl0922/ttyd/wiki/SSL-Usage。

更多

上面的用法根抵能餍足日常需求了,假定想要相识更多用法,可以或许参考其 Wiki,链接是:https://github.com/tsl0922/ttyd/wiki/Example-Usage。

公网表露

固然,我们假定想把它公网表露进去,还可以或许共同 Ngrok,比喻 ttyd 运行在 8000 端口上,我可运用 Ngrok 将其表露进去: 

ngrok http 8000 

运行终局以下:

这样我就能经由过程指定的 URL 拜访这个终端了,比喻这里我就能运用 https://11b4-2404-f801-8050-3-bf-00-55.ngrok.io/ 来拜访我的终端了:

极度 Nice!

总结

好了,以上就是 ttyd 的根抵运用了,有了它,我们就能轻松将某台古板上的终端转到 Web 下去执行了,照旧极度方便有效的。 

 



上一篇:低档继续性利诱(APT)与网络犯罪团伙间的继续互惠纠葛
下一篇:江湖   文/天涯书境