发布于周五 14:525天前 \r # 简介\r \r 百川云开发者是来自长汀的技术爱好者联盟。因为我们有很多云主机,又没有固定的办公电脑,所以我们经常找不到服务器IP,经常记不住密码,甚至忘记自己有多少台服务器。于是我们很快就开发了一个在线终端工具,可以在三天内协同使用,而且对于我们自己来说也是一种享受。 \r \r 后来我发现身边很多朋友也有同样的问题,所以我决定创建一个公共服务,并给这个工具起了一个名字:牧云主机管理助手。上线仅一个月,已有1000多名朋友注册使用,非常可喜。本文将介绍牧云的使用并揭示设计和开发思路。欢迎各位技术爱好者前来体验交流~\r \r 在线体验:\r \r [https://rivers.chaitin.cn/workbench?promotion=a46555d83883b379c6e77c7a085dc1da](https://rivers.chaitin.cn/workbench?promotion=a46555d83883b379c6e77c7a085dc1da)\r \r # 01.挑战\r \r 技术朋友一定对终端很熟悉,这是管理计算机最简单、最直接的方式。为了让使用起来更加愉快,我们决定在终端上进行一些处理,并进行了整理。我们需要解决的主要问题如下:\r \r * 可以连接到远程服务器的终端\r \r * 服务器必须能够连接,即使它没有公共IP\r \r * 您必须能够在不打开ssh 服务的情况下进行连接\r \r * 支持终端远程协助\r \r * 多人可以同时操作同一个终端\r \r * 能够在查看远程操作时复制终端中的文本\r \r * 支持录制终端操作并可反复观看\r \r * 安全\r \r * 您可以使用帐号和密码登录,指定用户也可以免密码登录\r \r * 需要在服务器上留下标准登录日志\r \r \r # 02.设计思路\r \r ## 1. 服务器\r \r 服务器端架构比较简单。在服务器上安装Agent,使用Agent拉起本地终端,使用公网服务器进行中转,将终端的输入输出通过Websocket喂给前端。参考下图:\r \r \r \r ## 2.Web终端\r \r Web端使用Xterm.js,轮子不错,用户体验与本地端基本一致。省了很多事,但是有几个小问题:\r \r * 很多错误,字体偶尔会耗尽\r \r * 性能有点慢,这取决于GPU,屏幕越大,延迟越多\r \r * 由于浏览器限制,无法使用Ctrl-w 和esc\r \r \r ## 3.代理\r \r 对于Agent部分,只需使用登录命令\r \r 1.直接调用登录程序时,会出现一个登录界面,看起来还不错\r \r 2.login -f 可以直接跳过密码认证,无需密码登录\r \r 3.登录本身会将登录日志写入btmp和wtmp\r \r \r 这样登录程序就完全满足需求了,只需要将登录进程的stdint/stdout/stderr绑定到网络连接上即可。不过,还有一个小问题:centos默认开启了selinux,这会干扰登录行为。 Root 无法使用密码登录。 \r \r ## 4. 合作计划\r \r 关于如何多人协同使用终端的问题,tmate是目前广泛使用的解决方案,但它并不能满足我们的要求。我们想要的解决方案:\r \r 1.不依赖ssh或其他客户端\r \r 2.不依赖公网环境,可以穿透内网\r \r 3.可以选择“只能查看终端”和“可以操作终端”\r \r 4.可以支持文件上传和下载\r \r \r 实现其实非常简单。只需要复制Agent的输入和输出,分别发送到不同的Websocket即可。参考下图:\r \r \r \r 处理几个细节后即可使用:\r \r * 多人使用时,每个人的屏幕尺寸不同,col和row需要同时调整\r \r * 如果加入共享时没有输入,您可能看不到任何内容。需要缓存输出流的历史信息\r \r * 如果全屏应用程序只刷新部分内容,共享时会显得很奇怪\r \r * 等等。 \r \r \r # 03.使用说明\r \r 1.扫描微信二维码登录百川平台\r \r \r [https://rivers.chaitin.cn/workbench?promotion=a46555d83883b379c6e77c7a085dc1da](https://rivers.chaitin.cn/workbench?promotion=a46555d83883b379c6e77c7a085dc1da)\r \r 2. 绑定您的主机\r \r \r \r \r 3、点击在线终端共享按钮,一键生成访问链接。 \r \r \r \r \r 在另一个浏览器中打开共享链接,然后双方就可以同时操作,流畅如丝。 \r \r \r \r 除了远程协作之外,牧云主机管理助手还提供资源监控、文件管理等功能,并且对普通个人用户免费。不过,如果你很有钱的话,非常感谢你的50毛钱~为了讨好同样是死书呆子的程序员,我们还花了半夜的时间画图,定制了一套Miku皮肤。我们故意不提换皮入口。谁找到就先用~\r \r **后续计划:**\r \r 1.Windows版本:支持Windows主机的管理\r \r 2.私有版:为暂时不方便使用SaaS服务的用户提供独立部署能力\r \r 3、开源:功能相对完善后,我们最终会将项目源码以开源的方式回馈给技术社区\r \r \r 欢迎大家加入**CTRivers**万能助手群积极讨论:\r \r 如果发现bug,您将获得**¥8.88**的现金红包\r \r 请求被接受,收到现金红包**¥8.88** :\r \r \r \r 最后附上百川云开发者公众号。更多容器镜像安全等技术知识一目了然。建议更多科技爱好者关注!
创建帐户或登录后发表意见