Skip to content

ruanun/next-terminal

Repository files navigation

Next Terminal

开源堡垒机 / 运维审计系统,支持 SSH、RDP、VNC、Telnet 协议。

关于本项目

本项目基于原作者 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

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-terminal

Docker Compose(推荐)

docker-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

CLI 工具

# 编译
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

搭配 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

About

Next Terminal 是一个简洁、安全、易用的运维审计系统,支持多种远程访问协议,包括 RDP、SSH、VNC、Telnet、HTTP 等,适用于企业级运维场景。它可以记录和回放会话,协助安全审计与合规追踪。

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors