开源堡垒机 / 运维审计系统,支持 SSH、RDP、VNC、Telnet 协议。
关于本项目
本项目基于原作者 dushixiang/next-terminal 的 1.x 分支与版本进行二次迭代:保留并延续其 Go 后端,使用现代化技术栈(Vite + React 18 + TypeScript + Tailwind CSS 4 + Ant Design 5)重写前端,并在此基础上扩展新增 MCP 服务 与 CLI 工具(
nt)。其中
ntCLI 配套了开箱即用的 Claude Code Skill(.claude/skills/nt-remote),让 Claude Code 等 AI Agent 能以自然语言直接接入、巡检和运维远程主机——所有 SSH 连接都在服务端完成,凭据不出堡垒机。主开发分支为
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 个工具 |
git clone -b rewrite https://github.com/ruanun/next-terminal.git
cd next-terminaldocker-compose up -d访问 http://localhost:8088 ,默认账号 admin / admin。
# 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# 编译
go build -o nt ./cmd/nt/
# 配置(token 为系统设置 → AI 集成 → CLI 的访问令牌,与 MCP 令牌相互独立)
nt config --addr http://localhost:8088 --token <cli-token>
# 使用
nt assets
nt exec myhost "df -h"
nt cat myhost:/etc/hostname
nt info myhost仓库内置了 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 # 构建脚本
Apache 2.0