跳转到帖子

游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

TheHackerWorld官方

看开发大神如何玩转「终端远程协助」

精选回复

发布于

0e345140f9bc4849a82d1a562bbdec051722.png

\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 327a1898-7d3d-4c43-a6a8-3e48b162ba26.png

\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 06b1b224-5efe-4829-ad48-af2762130fbf.png

\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 7b0dd30fe7a349b184ec5fc0cede72aa1722.png

\r

\r

3、点击在线终端共享按钮,一键生成访问链接。 \r

\r

\r 24fcee21-597e-41cc-933c-51656b2ee5f3.png

\r

\r

在另一个浏览器中打开共享链接,然后双方就可以同时操作,流畅如丝。 \r

\r e9e2141c-9efa-4c8e-b947-a3756fae8f98.png

\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 fa657722b77c40e08b4ef706fb4764c61722.png

\r

\r

最后附上百川云开发者公众号。更多容器镜像安全等技术知识一目了然。建议更多科技爱好者关注!

创建帐户或登录后发表意见

最近浏览 0

  • 没有会员查看此页面。