60天前,我为论坛的机友制作了一个玩机工具 post-233023-1,当时功能较为粗糙。

今天,在 AI 的加持下,我带来了全新的 0.2.0 版本!一行命令即可通过 Docker 部署到你的服务器上,轻松使用。


🚀 快速部署

只需运行以下命令即可完成部署:

docker run -d --network host hochenggang/managi:0.2.0

部署完成后,访问 http://<你的IP>:18001 即可开始使用。

提示: 你还可以进一步配置反向代理或绑定域名,提升使用体验。


🌐 在线体验

只想围观?可以直接在线看看效果:
https://managi.imhcg.cn/


🛠 核心特性

  • 数据安全:所有数据存储在你的浏览器本地,支持随时导入导出。
  • 轻量化设计:核心功能完全在浏览器端实现。
  • 隐私保护:Docker 内的 Python 程序仅提供协议转换(ws 转 ssh),不记录任何用户数据。
  • 开源项目:后端代码仅为一个 .py 文件,前端代码仅为一个 .html 文件,简单易懂。

🎯 使用场景

  • 简易跳板机:你可以将此工具用作简单的跳板机,方便管理多台远程服务器。
  • 自定义认证:通过反向代理配置,可以轻松添加身份认证功能,增强安全性。
  • 灵活扩展:由于项目开源且结构简单,你可以根据需求进行二次开发或功能扩展。

📸 功能展示

以下是工具的部分界面截图:

1.jpg
图1:单机交互式 SSH

2.jpg
图2:批量多机单向执行命令


🌱 开源地址

如果你对该项目感兴趣,欢迎访问 GitHub 仓库并点个星标支持我!
github.com/hochenggang/managi-backend


🙏 感谢支持

希望这个工具能为大家带来便利!如果有任何问题或建议,欢迎在评论区留言交流。


🚨 注意事项

  • IPv6 支持:如果你需要通过此工具连接 IPv6 地址的服务器,请确保部署该工具的机器本身支持 IPv6,否则可能无法正常访问目标服务器。

📌 工作说明

以下是一个简单的连接流程示意图,帮助你更好地理解工具的工作原理:

+-------------------+       WebSocket (ws)       +-------------------+
|                   |   -----------------------> |                   |
|  用户浏览器        |                           |  Managi 工具      |
|                   |   <----------------------- |  (作为跳板机)    |
+-------------------+       协议转换 (ws -> ssh) +-------------------+
                                                         |
                                 |                SSH 连接
                                                         v
+-------------------+       SSH 隧道          +-------------------+
|                   |   -----------------------> |                   |
|  用户浏览器       |                           |  目标服务器       |
|                   |   <----------------------- |                   |
+-------------------+                           +-------------------+

📝 流程说明

  1. 用户操作

    • 用户通过浏览器访问部署好的 Managi 工具(http://<IP>:18001)。
    • 在工具中输入目标服务器的 SSH 信息(如 IP 地址、端口、用户名和密钥等)。
  2. WebSocket 通信

    • 用户浏览器与 Managi 工具之间通过 WebSocket (ws) 协议进行通信。
    • 用户的操作指令(如键盘输入、终端命令等)会通过 WebSocket 发送到 Managi 工具。
  3. Managi 工具作为跳板机

    • Managi 工具接收到用户的 WebSocket 数据后,将其转换为标准的 SSH 协议数据。
    • Managi 工具以跳板机的身份,通过 SSH 协议直接连接到目标服务器。
  4. SSH 隧道建立

    • Managi 工具与目标服务器之间建立了 SSH 隧道。
    • 所有用户的终端操作都会通过这个 SSH 隧道传递到目标服务器。
  5. 返回结果

    • 目标服务器的输出结果会通过 SSH 隧道返回到 Managi 工具。
    • Managi 工具再将结果通过 WebSocket 发送回用户的浏览器。