840fe292c3ee00ed63512d4990f7f0c9f9428b3d
Reorder the add-connection dialog so the script mode switch appears before basic information to improve entry flow. Normalize script-mode pasted content by trimming lines, removing empty lines, and ignoring Markdown code fence markers before parsing. Also update token splitting to handle any whitespace separator, improving compatibility with varied pasted formats.
📖 概述
星枢终端(Nexus Terminal) 是一款现代化、功能丰富的 Web SSH / RDP / VNC 客户端,致力于提供高度可定制的远程连接体验。提供独立的本地桌面端。
当前维护仓库:Micah123321/nexus-terminal
源项目:Heavrnl/nexus-terminal
🧱 项目结构
本仓库采用 npm workspaces 的 monorepo 结构:
packages/frontend:基于 Vue 3、Vite、Pinia、xterm.js 与 Monaco Editor,负责 Web 工作区、PWA、设置面板与文件编辑体验packages/backend:基于 Express、SQLite、WebSocket、SSH/SFTP,负责认证、连接管理、通知与审计日志packages/remote-gateway:负责 RDP / VNC 远程桌面令牌生成以及与guacd的桥接
✨ 功能特性
- 多标签页管理 SSH 与 SFTP 连接
- 支持 RDP/VNC 协议
- 支持 PWA 与独立桌面端
- 采用 Monaco Editor,支持在线编辑文件
- 支持 SSH 会话挂起与恢复,长任务不中断
- 集成多重登录安全机制,包括人机验证(hCaptcha、Google reCAPTCHA)、双因素认证(2FA)与 Passkey
- 高度可定制的界面主题与布局风格
- 提供 Focus Switcher,可自定义页面输入组件切换顺序与快捷键
- 内置简易 Docker 容器管理面板,便于容器运维
- 支持 IP 白名单与黑名单,异常访问自动封禁
- 通知系统与审计日志,全面记录登录、凭据与系统变更
- 基于 Node.js 的轻量级后端,资源占用低
- 内置心跳保活机制,确保连接稳定
📸 截图
| 终端界面(Light) |
|---|
![]() |
| 终端界面(Dark) |
|---|
![]() |
| 移动端界面1 | 移动端界面2 |
|---|---|
![]() |
![]() |
🖥️ 桌面端
移除了web端的特有功能,如各种登录验证,会话挂起等功能
https://github.com/Micah123321/nexus-terminal/releases/latest
🚀 快速开始
1️⃣ 配置环境
建议在 Debian(AMD64 架构)环境中部署,因本人无 ARM 设备,无法保证其兼容性。
新建文件夹
mkdir ./nexus-terminal && cd ./nexus-terminal
下载仓库中的 docker-compose.yml 和 .env 文件到当前目录。
wget https://raw.githubusercontent.com/Micah123321/nexus-terminal/refs/heads/main/docker-compose.yml -O docker-compose.yml && wget https://raw.githubusercontent.com/Micah123321/nexus-terminal/refs/heads/main/.env -O .env
⚠️ 注意:
- arm64 用户请将
docker-compose.yml中的镜像guacamole/guacd:latest替换为guacamole/guacd:1.6.0-RC1。- armv7 用户请参考下方注意事项。
配置 nginx
location / {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Range $http_range;
proxy_set_header If-Range $http_if_range;
proxy_redirect off;
proxy_pass http://127.0.0.1:18111;
}
为 docker 配置IPv6(可选,如果你不使用ipv6连接服务器可以不配置)
在/etc/docker/daemon.json加入以下内容
{
"ipv6": true,
"fixed-cidr-v6": "fd00::/80",
"ip6tables": true,
"experimental": true
}
重启docker服务
sudo systemctl restart docker
2️⃣ 启动服务
docker compose up -d
3️⃣ 更新
注意:docker-compose 运行不需要拉取仓库源码,除非你打算自己build,否则只需要在项目目录执行以下命令即可更新。
docker compose down
docker compose pull
docker compose up -d
📚 使用指南
挂起会话组件
你可以在 SSH 标签页中右键选择“挂起会话”(移动界面长按即可)。一旦挂起,即使网页断开连接,后端也会自动接管并保持 SSH 连接不中断。你可以随时通过面板组件重新恢复会话,整个过程确保编译、长任务等操作不会因网络波动等原因中断。
命令输入框组件
- 标签页切换:当命令输入框获得焦点时,使用
Alt + ↑/↓切换 SSH 会话标签页,使用Alt + ←/→切换文本编辑器标签页。 - 命令同步(需在设置中开启):开启后,在命令输入框中输入的文字将实时同步到选定的目标输入源。使用
↑/↓键选择菜单命令项,然后按下Enter发送选中的指令。
文件管理器组件
- 固定根节点资源管理器:文件区采用固定
/根节点的单栏资源管理器树,目录展开后会在同一棵树里同时显示子目录和文件。 - 文件快速选择:在文件搜索框获得焦点时,可以使用
↑/↓键快速选择文件。 - 拖拽上传:支持从浏览器外部拖拽文件或文件夹进行上传。注意: 上传大量文件或深层文件夹时,建议先进行打包压缩,以避免浏览器卡死。
- 内部拖拽:可以直接在文件管理器内部拖动文件或文件夹以进行移动。
- 多选操作:按住
Ctrl或Shift键可以选择多个文件或文件夹。 - 右键菜单:提供复制、粘贴、剪切、删除、重命名、修改权限等常用文件操作。
终端组件
- Ctrl + Shift + C 复制,Ctrl + Shift + V 粘贴
历史命令组件
- 查看完整命令:当历史命令过长被截断时,将鼠标悬停在命令上即可查看完整的指令内容。
通用操作
- 缩放:在终端、文件管理器和文本编辑器组件和快捷指令视图中,可以使用
Ctrl + 鼠标滚轮进行缩放。 - 侧栏:展开的侧栏可以通过拖拽调节宽度。
- 标签栏:对于ssh标签栏和文件管理器标签栏可以右键弹出菜单,内容项有:关闭,关闭左侧标签页,关闭其他标签页,关闭右侧标签页。
- 标签分组折叠栏 可以直接点击视图里的标签名字修改标签名称
- 自动重连:在连接断开状态下,可在命令输入框或终端中按回车,或点击连接列表中的同一 SSH 连接以触发自动重连。
其他
- 移动端可以通过双指手势放大缩小终端字体
- 如需启用 Passkey 登录,请在
.env文件中设置RP_ID和RP_ORIGIN环境变量。
⚠️ 注意事项
- 双文件管理器:可以在布局中添加两个文件管理器组件(实验性功能,可能存在不稳定情况)。
- 多文本编辑器:在同一布局中添加多个文本编辑器的功能尚未实现。
- ARMv7 用户请使用此处的 docker-compose.yml。由于 Apache Guacamole 未提供 guacd 的 ARMv7 架构镜像,所以禁用 RDP 功能,相关镜像暂时不再拉取。
- 关于数据备份,请自行备份目录下的 data 文件夹,本项目不提供相关备份功能。
- 由于浏览器限制,非https或者localhost无法复制终端内容,请使用https访问
🛠️ 开发说明
常用命令
npm install
npm run dev --workspace=@nexus-terminal/frontend
npm run dev --workspace=@nexus-terminal/backend
npm run dev --workspace=@nexus-terminal/remote-gateway
npm run build --workspace=@nexus-terminal/frontend
npm run build --workspace=@nexus-terminal/backend
npm run build --workspace=@nexus-terminal/remote-gateway
本地知识库
仓库中的 .helloagents/ 目录用于维护本地知识库、模块索引和方案包,方便协作与后续变更追踪。它不是运行时依赖,但当项目结构、功能说明或协作约定发生变化时,建议同步更新对应内容。
💐 致谢
- 预设主题方案来源于优秀的 iTerm2-Color-Schemes 项目。
📄 开源协议
Languages
TypeScript
62.4%
Vue
35.6%
HTML
1.7%
CSS
0.2%
Dockerfile
0.1%




