暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

将命令行监控转为Web方式显示

生有可恋 2022-04-19
909

开源项目 gotty 可以将命令行工具转为Web方式运行,稍微开下脑洞就可以找到很多可利用的点。

比如把 top 和 iotop 资源占用监控集成到一个页面上作为大屏展示。

    $ cat d/a.html
    <html>
    <frameset cols="50%,50%">
    <frame src="http://192.168.10.23:9000" >
    <frame src="http://192.168.10.23:9001" >
    </frameset>
    </html>

    gotty 只是将指定的程序映射到web上,当程序退出后,连接会断开。相对于直接 ssh 访问服务器,通过终端窗口形式监控服务器状态,权限会限定在监控程序,相对比较安全。

    gotty 的项目地址为:

    • https://github.com/sorenisanerd/gotty

    gotty 是用 go 语言编写的,在 Release 页面提供了编译好的二进制文件,下载后可以直接运行。

    运行时直接将需要执行的命令行工具跟在 gotty 后面即可

      gotty -p 8000 htop

      默认 gotty 会启用 8080 端口,可以使用 -p 指定端口。

      如果需要长时间进行监控,可以开启一个 screen 会话,在会话中执行 gotty,并为不同的监控程序指定不同的端口。

      默认 gotty 提供的 web 程序不接受输入,如果需要接受用户输入,可以在命令行中加入 -w 参数。

        gotty -p 8000 -w top

        当提供 -w 参数后,gotty 此时将程序的输入输出全部映射到了 web端,此时存在一定的安全风险。如果不是把监控程序映射至 web,而是将 bash 这种交互式程序映射至 web,此时所有访问网页的人都可免认证访问服务器,比如使用如下命令:

          gotty -p 8000 -w bash

          此时在网页上就可操作服务器

          如果是在安全可控的环境下,此方式可以用来当教学,一人操作,其他人通过web 围观。但直接把操作权限映射至匿名访问的网络上还是非常危险的,所以 gotty 提供了其它安全选项。

          安全选项

          • -r  随机字符,在端口后生成一串随机字符串作为访问的 URL

          • -c 加用户密码认证

          带随机字符串的 URL 类似如下:

          如果不知道随机字符串,只通过端口是无法访问的,直接访问会报"

          404 page not found"。完整的命令如下:

            $ gotty -p 8000 -w -r bash
            2022/04/18 21:40:01 Alternative URL: http://192.168.10.23:8000/g8t1vb7w/

            第二种方式是通过 -c user:pass 指定用户名和密码,为网页加一个简单的认证,当访问网页时会弹出认证页面:

            用户名和密码是在参数中由用户指定的,完整的命令如下:

              gotty -p 8000 -w -c user:YorPassWord bash

              总结

              相对于传统 ssh 终端形式访问服务器,gotty 为服务器管理提供了一种新的选择,通过 web 的形式运行命令行程序,可以用来作监控,也可以在网页上直接操作 shell,能直接把 bash 、zsh 搬到 web 上。特别是一些输入不方便的场景,比如手机,gotty 可以将 web 变成屏幕。


              最后给出一个将 tmux 映射到 web 的例子作为结束。

                gotty -p 8000 -w -c user:pass tmux


                文章转载自生有可恋,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                评论