# next-terminal **Repository Path**: ruanun/next-terminal ## Basic Information - **Project Name**: next-terminal - **Description**: Next Terminal 是一个简洁、安全、易用的运维审计系统,支持多种远程访问协议,包括 RDP、SSH、VNC、Telnet、HTTP 等,适用于企业级运维场景。它可以记录和回放会话,协助安全审计与合规追踪。 - **Primary Language**: Go - **License**: Apache-2.0 - **Default Branch**: rewrite - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-01 - **Last Updated**: 2026-07-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Next Terminal 开源堡垒机 / 运维审计系统,支持 SSH、RDP、VNC、Telnet 协议。 > **关于本项目** > > 本项目基于原作者 [dushixiang/next-terminal](https://github.com/dushixiang/next-terminal) 的 1.x 分支与版本进行二次迭代:保留并延续其 Go 后端,使用现代化技术栈(Vite + React 18 + TypeScript + Tailwind CSS 4 + Ant Design 5)重写前端,并在此基础上扩展新增 **MCP 服务** 与 **CLI 工具(`nt`)**。 > > 其中 `nt` CLI 配套了开箱即用的 **Claude Code Skill**(`.claude/skills/nt-remote`),让 Claude Code 等 **AI Agent** 能以自然语言直接接入、巡检和运维远程主机——所有 SSH 连接都在服务端完成,凭据不出堡垒机。 > > 主开发分支为 [`rewrite`](https://github.com/ruanun/next-terminal/tree/rewrite)。 > [!WARNING] > **安全提示**:本项目作为堡垒机集中保管远程主机的密码、密钥等敏感凭据,请勿将其直接暴露于公网。建议部署在内网,并通过 VPN 或可信网关访问。 ## 功能 - **资产管理** — SSH/RDP/VNC/Telnet 资产,连通性测试,CSV 导入 - **终端工作台** — IDE 风格多标签终端,可拖拽侧边栏,文件管理 - **会话审计** — 在线会话监控/断开,离线会话录屏回放 - **文件管理** — SFTP 浏览/上传/下载/编辑/chmod,右键菜单操作 - **安全管理** — 访问安全策略,登录策略,角色权限,双因素认证 - **批量执行** — 多资产并行执行命令 - **系统监控** — CPU/内存/磁盘/网络实时图表 - **AI 集成** — MCP 协议 + CLI 命令行工具 + Claude Code Skill - **暗黑模式** — OKLCH 主题变量,亮色/暗色一键切换 ## 技术栈 | 组件 | 技术 | |------|------| | 后端 | Go + Echo + GORM + SQLite/MySQL | | 前端 | Vite 8 + React 18 + TypeScript + Tailwind CSS 4 + Ant Design 5 | | 终端 | xterm.js 5 + WebSocket | | 远程桌面 | Apache Guacamole (guacd) | | CLI | Go 单二进制 (`nt`) | | MCP | SSE + JSON-RPC,13 个工具 | ## 快速开始 ### 克隆代码 ```bash git clone -b rewrite https://github.com/ruanun/next-terminal.git cd next-terminal ``` ### Docker Compose(推荐) ```bash docker-compose up -d ``` 访问 http://localhost:8088 ,默认账号 `admin` / `admin`。 ### 手动编译 ```bash # 1. 编译前端 cd web npm install --legacy-peer-deps npm run build cp -r dist ../server/resource/dist cd .. # 2. 编译后端 go mod tidy go build -o next-terminal main.go # 3. 运行 ./next-terminal ``` ### CLI 工具 ```bash # 编译 go build -o nt ./cmd/nt/ # 配置(token 为系统设置 → AI 集成 → CLI 的访问令牌,与 MCP 令牌相互独立) nt config --addr http://localhost:8088 --token # 使用 nt assets nt exec myhost "df -h" nt cat myhost:/etc/hostname nt info myhost ``` #### 搭配 AI Agent(Claude Code Skill) 仓库内置了 Claude Code Skill(`.claude/skills/nt-remote`)。在 Claude Code 中无需记命令,直接用自然语言下达运维指令,Agent 会自动调用上述 `nt` 命令完成操作: ``` > 帮我连上 myhost,看看磁盘占用,再把 nginx 重启一下 ``` Agent 会依次执行 `nt info` / `nt exec` 等命令并汇总结果。所有连接均经堡垒机服务端完成,凭据不暴露给 Agent。 ## 配置 通过环境变量或 `config.yml` 配置: | 环境变量 | 默认值 | 说明 | |---------|--------|------| | `DB` | `sqlite` | 数据库类型(sqlite/mysql) | | `SQLITE_FILE` | `./data/sqlite/next-terminal.db` | SQLite 文件路径 | | `SERVER_ADDR` | `0.0.0.0:8088` | HTTP 监听地址 | | `GUACD_HOSTNAME` | `127.0.0.1` | Guacd 服务地址 | | `GUACD_PORT` | `4822` | Guacd 端口 | | `SSHD_ENABLE` | `false` | 启用 SSH 跳板服务 | | `SSHD_ADDR` | `0.0.0.0:8089` | SSH 跳板监听地址 | ## 项目结构 ``` ├── cmd/nt/ # CLI 命令行工具 ├── server/ │ ├── api/ # HTTP API(含 CLI API) │ ├── app/ # 应用启动、路由、中间件 │ ├── mcp/ # MCP 服务(13 个工具 + 审计日志) │ ├── model/ # 数据模型 │ ├── repository/ # 数据访问层 │ ├── service/ # 业务逻辑层 │ ├── config/ # 配置管理 │ ├── sshd/ # SSH 跳板服务 │ └── resource/ # 前端构建产物(嵌入) ├── web/ # 前端(详见 web/README.md) ├── guacd/ # Guacd Docker 构建 ├── Dockerfile # 多阶段构建 ├── docker-compose.yml # 一键部署 └── build.sh # 构建脚本 ``` ## License Apache 2.0