Redian新闻
>
看技术大神如何玩转「终端远程协助」

看技术大神如何玩转「终端远程协助」

公众号新闻



· 前言 ·


百川云开发者是来自长亭的技术爱好者联盟,因我们手里云主机比较多,没有固定的办公电脑,导致经常找不到服务器 IP ,也经常想不起来密码,甚至忘了名下到底有多少台服务器,于是我们3天快速开发了一个能协同使用的在线终端工具,自用的不亦乐乎~

后来发现身边不少朋友都有同样的困扰,于是决定做一个公开服务,上线刚刚一个月就有超过 1000 个朋友注册使用,心甚慰,这篇文章将介绍玩法儿并揭秘设计开发思路,欢迎同为技术爱好者前来体验交流~


在线体验:

https://rivers.chaitin.cn/workbench?promotion=a46555d83883b379c6e77c7a085dc1da







0x01  面临的挑战


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

  • 不开 ssh 服务也要能连


  • 支持对终端做远程协助

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


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


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



  • 安全性

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

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






0x02 设计思路


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



2.2  Web 终端

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

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


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


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


2.3  Agent

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

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


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


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


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


2.4  协同方案

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

  • 不依赖 ssh 或其他客户端

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

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

  • 能支持文件上传下载


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


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

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

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

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

  • 等等...







0x03 玩法说明


1. 微信扫码登录百川平台

https://rivers.chaitin.cn/workbench?promotion=a46555d83883b379c6e77c7a085dc1da

2. 绑定你的主机


3.点击 在线终端 > 分享按钮,可以一键生成访问链接。


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




0x04 写在最后


除了远程协同,牧云主机管理助手还提供资源监控、文件管理等功能,且对普通个人用户都是免费的,但是如果你非常有钱,也十分感谢你能不吝打赏五毛~  我们为了讨同为死宅程序员们的欢心,还花了半晚上时间 P 图,定制了一套 Miku 皮肤,这里故意不说换肤入口,谁找到谁先用~


后续计划:

  1. Windows 版本:支持管理 Windows 主机

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

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



.

END




抽牧云助手兑换码

  • 50元兑换码*1,

    10元兑换码*2,5元兑换码*2


  • 转发此篇文章到朋友圈即可参与抽奖


欢迎加 CTRivers 入群积极讨论

  • 发现 Bug 有 ¥8.88 的现金红包

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




微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
ChatGPT 核心技术大起底——InstructGPT:研究人类反馈数据比加大模型规模更重要!「终结者」走入现实?微软的野心:用ChatGPT控制机器人!英特尔,如何玩转Chiplet?腾讯T13技术大牛被裁:47岁是互联网大厂优化核心对象首届老年精神心理健康及照护学术大会召开,数字技术如何革新老年护理?如何玩中带学与名校并肩?模拟招生官 & 文书体验营...你不可错过!辽宁工程技术大学2023年运动训练专业招生简章票帝事务所:一次美高学生(16岁)行程协助及后续思考(误机过夜)终端基础:在 Linux 终端中创建目录 | Linux 中国Chiplet时代,如何玩转DRAM?倡导可持续生活方式!看地球日星期零如何玩出「好食力」新增两所职业技术大学!办职业本科目的是什么?美国入境档案---朱汝瑾李静贞颠覆传统非遗美学,潮宏基如何玩出新高度?播放器技术演进与探索,Web开播系统的技术演进,大屏终端音视频播放,音视频效果插件开放平台建设关于ChatGPT与大模型,我们要办场严肃的技术大会吴恩达教你如何玩转ChatGPT,限时免费!颠覆物理学!美国团队宣布常温超导技术大突破,人类将迎来新纪元继续deadhang,越来越多的证据了83岁达式常近照曝光!昔日荧幕男神如今竟活成了这样...谁说美国远程关闭了白俄罗斯专机?波音公司远程关闭了白俄总统专机,坐实了美国产品都有后门内卷的美食节目,2023如何玩出新花样?搜索引擎技术大战,始于今日如何玩投杯球如何玩喝酒游戏“国王之杯”腾讯T13技术大佬被裁:曾两次「惊动」马化腾,现年47厂龄16年悲痛!中国留学生中枪「终生瘫痪」父母绝望崩溃,第一时间赶来出海正当时,收藏玩具52TOYS如何玩转海外市场?微档---凯恩斯1917年入境美国小花梅身体和精神如何?子女现在的生活怎样?六问“丰县生育八孩女子”事件如何玩好办公室愚人节恶作剧中国人口开始下降,敲响中华民族的丧钟特别推荐一个视频春节营销扎堆内卷,看奔驰如何玩出「新」年味谎言!华能清能院当众戳穿奥联电子,股价断崖跌停!钙钛矿“技术大牛”造假
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。