牧云collie:一款简单轻量的主机远程管理软件,限时送海外云主机

0x01 前言

说起主机管理工具,你是否用过资源监控、终端管理、主机面板、远程桌面、堡垒机之类的工具来管理和监控主机,却依旧面临以下问题:

l 笔记本没带,服务器的 SSH 认证私钥只在笔记本上,没有私钥登不上去

l 家里有台机器,但是网络受 NAT 的影响,出了门就连不回家里的内网,无法远程连接内网主机

l 出于工作需要,在阿里云、腾讯云、华为云等等各种云上面买了一大堆机器,经常忘了自己有哪些机器,还不能统一管理

l 运维要求 SSH 端口不能对外开放,连个 SSH 需要好几层堡垒机

l 出门在外没有电脑,只有手机,想看看服务器的状态

l ...

作为一位研发&运维&安全技术爱好者,长期饱受以上主机管理问题的困扰。一次酒足饭饱后,与三个程序员一拍即合,决定做一个供自己使用的主机管理小工具。几天后发布了第一版,发现身边不少朋友都有同样的困扰,于是决定做一个公开服务,并命名为:牧云主机管理助手,上线不到一个月就有超过 1000 个朋友注册使用,这篇文章将分享玩法儿并揭秘设计开发思路,欢迎同为技术爱好者前来体验交流~

 在线体验:https://rivers.chaitin.cn/landing/collie

免费领取海外云主机,请直接阅读文章末尾↓ 

0x02 面临的挑战

做技术的朋友肯定都熟悉终端,终端是管理计算机最简单直接的方式。为了让自己用起来更爽一点,我们决定对终端做一些加工,整理了一下,主要是下面几个问题需要解决:

• 能连接远程服务器的终端

– 服务器没有公网 IP 也要能连

– 不开 ssh 服务也要能连

• 支持对终端做远程协助

– 多人同时对同一个终端进行操作

– 观看远程操作时能复制终端里的文本

– 支持录制终端操作,能反复观看

• 安全性

– 可以使用账号密码登录,可以对指定用户免密登录

– 需要在服务器留下标准登录日志

0x03 设计思路

1. 服务端

服务端架构相对简单,在服务器上安装 Agent,用 Agent 拉起本地终端,用一台公网服务器做中转,通Websocket 将终端的输入输出喂给前端,参考下图:

牧云collie:一款简单轻量的主机远程管理软件,限时送海外云主机,牧云collie:一款简单轻量的主机远程管理软件,限时送海外云主机,第2张,牧云,第1张 

2. Web 终端

Web 终端采用 Xterm.js,轮子不错,使用体验和本地终端基本一致,省了很多事,就是有几个小问题:

• Bug 不少,字体偶尔会跑飞

• 性能有点拉跨,依赖 GPU,屏幕越大越卡

• 受浏览器限制,Ctrl-w 和 esc 没法用

3. Agent

Agent 的部分,直接用 login 命令搞定

login 程序直接调用就有一个看起来还不错的登录界面

login -f 就能直接跳过密码认证免密登录

login 自己会把登录日志写到 btmp 和 wtmp 里

这样一来 login 程序完全满足需求,只需要把 login 进程的 stdint/stdout/stderr 和网络连接绑定起来就可以。不过也有小问题:centos 默认开了 selinux,会对 login 的登录行为有干扰,root 无法使用密码登录。

4. 协同方案

关于如何多人协作使用终端的问题,tmate 是目前被广泛使用的方案,但是不符合我们的要求,我们想要的方案:

l 不依赖 ssh 或其他客户端

l 不依赖公网环境,可穿透内网

l 可以选择 ”只能观看终端“ 和 ”可以操作终端“ 两种模式

l 能支持文件上传下载

实现其实非常简单,只需要把 Agent 的输入输出复制出来,分别发给不同的 Websocket 就可以,参考下图:

牧云collie:一款简单轻量的主机远程管理软件,限时送海外云主机,牧云collie:一款简单轻量的主机远程管理软件,限时送海外云主机,第3张,牧云,第2张 

几个细节处理一下就可以用了:

• 多人使用时,每个人的屏幕大小不同,需要同步调整 col 和 row

• 加入分享时如果一直没有输入可能会什么也看不到,需要缓存一下输出流的历史信息

• 全屏应用如果只刷新局部,加入分享时看起来也会比较奇怪

• 等等...

0x04 使用说明

微信扫码登录百川平台https://rivers.chaitin.cn/landing/collie 

绑定你的主机

 牧云collie:一款简单轻量的主机远程管理软件,限时送海外云主机,牧云collie:一款简单轻量的主机远程管理软件,限时送海外云主机,第4张,牧云,第3张

1. 在线终端

体验与本地的终端基本一致,感受不到延迟,还能支持选择配色,与传统 SSH 最大的区别在于,不用开放 22 端口,不用设置密码,不用配置公私钥,点击[分享]按钮,可以一键生成访问链接。

牧云collie:一款简单轻量的主机远程管理软件,限时送海外云主机,牧云collie:一款简单轻量的主机远程管理软件,限时送海外云主机,第5张,牧云,第4张 

在另一个浏览器里打开分享链接,这时候就可以两边同步操作了,如丝一般顺滑。

牧云collie:一款简单轻量的主机远程管理软件,限时送海外云主机,牧云collie:一款简单轻量的主机远程管理软件,限时送海外云主机,第6张,牧云,第5张

2.资源监控

借鉴了微软的任务管理器,这里从”磁盘空间“,”CPU 使用率“、”内存使用率“、”网络 IO“、”磁盘 IO“ 这五个维度提供图标展示,还在服务端保留了 7 天的历史数据。

牧云collie:一款简单轻量的主机远程管理软件,限时送海外云主机,牧云collie:一款简单轻量的主机远程管理软件,限时送海外云主机,第7张,牧云,第6张3.文件管理

交互细节抄(参考)了微软的资源管理器(希望能比mac的finder好用点),现在只有列目录和上传下载,后面还会增加快速查看和在线编辑的功能。

牧云collie:一款简单轻量的主机远程管理软件,限时送海外云主机,牧云collie:一款简单轻量的主机远程管理软件,限时送海外云主机,第8张,牧云,第7张

0x05 写在最后

百川开发者是来自长亭科技的技术爱好者联盟,旨在研发有趣、实用、免费的工具。欢迎朋友联系我们进行技术交流。目前本工具提供的所有功能对于普通个人用户都是免费的,但是如果你非常有钱,也十分感谢你能不吝打赏五毛~  

后续计划:

l 私有化版本:提供独立部署能力,给暂时不方便使用 SaaS 服务的用户使用

l 开源:等待功能相对完善后,项目源码最终我们会以开源的方式回馈技术社区

0x06 福利放送

1. 免费领取海外云主机

新开通牧云主机管理助手的用户,可领取1台海外云主机,最高可领取83台!

地址:https://rivers.chaitin.cn/landing/collie 

领取教程:https://www.bilibili.com/video/BV1gV4y1k7N1/

2. 现金红包

加入牧云主机管理交流群

发现 Bug 有 ¥8.88的现金红包

提需求被采纳有¥8.88的现金红包

群二维码:

牧云collie:一款简单轻量的主机远程管理软件,限时送海外云主机,牧云collie:一款简单轻量的主机远程管理软件,限时送海外云主机,第9张,牧云,第8张

牧云 

发表评论 取消回复

很抱歉,您暂时无法发布评论。需要 登录 后才能发布。

返回评论 返回顶部