Skip to content
项目

jimmy201602/webterminal has 1,728 GitHub stars and 555 forks. GitHot measured 0 stars in 24 hours and 0 in 7 days. Last checked 2026-11-11 16:13 UTC. Last push 2026-10-23.

这些数字如何统计

ssh rdp vnc telnet sftp bastion/jump web putty xshell terminal jumpserver database audit realtime monitor rz/sz 堡垒机 云桌面 linux devops sftp websocket file management rz/sz otp 自动化运维 审计 录像 文件管理 sftp上传 实时监控 录像回放 网页版rz/sz上传下载/动态口令 go

可以做什么

  • Protocols: SSH / SFTP / Telnet, RDP, VNC, WinRM, MySQL / PostgreSQL / SQL Server / Oracle / Redis / MongoDB, Kubernetes
  • Two ways in: web terminals (xterm, in-browser RDP/VNC desktops, browser file transfer) + native-client proxies (local ssh / mstsc / database clients / one-click helper launch)
  • Authorization model: principal (user / group / department) → asset/node × account × protocol × action (connect, upload, download, clipboard, port forwarding…), with validity windows, approvals and policies
  • Audit: full session history, SSH/RDP/VNC recording & replay, OCR text search over recordings, live RDP window-title timeline, command filtering/blocking, database SQL filtering

实测星标增长

24小时
0
7天
0
15天
更新延迟
1个月
更新延迟

各周期内的星标净变化,周期相互重叠,并非每日新增。缺失的测量保持空白。星标代表关注度,不代表软件质量。

README_zh.md

原文

Webterminal — 开源堡垒机 / 运维审计平台

English Docker Hub

Webterminal 是一体化特权访问管理平台:统一的资产接入、授权控制、会话审计与操作回放。浏览器里即可完成 SSH / RDP / VNC / 数据库运维,也可通过原生客户端(ssh、mstsc、mysql、navicat…)经内置协议代理直连。

📌 推荐使用 1.1 Docker 镜像(本文档)。仓库内的 Python/Django 源码为旧版实现,文档见 README_LEGACY.md。

1.1 版本

1.x 是全新重构版本:Go 后端 + React 前端,以单容器 All-in-One 镜像发布——一个容器内含 webterminal 服务 + nginx + SQLite +(1.1 起)OCR 识别引擎,无外部依赖(不含 Redis,单机全部走内存兜底),amd64 与 arm64 同 tag 多架构分发。

1.1 新增

  • 内置 OCR 识别服务(PP-OCRv4,RapidOCR / ONNX Runtime)直接打在容器内,不需要再部署独立服务:
    • 录像文字检索:RDP/VNC 录像关键帧后台 OCR 建索引,可按屏幕上出现过的文字搜索会话。
    • RDP 窗口标题实时识别:原生 RDP 代理会话从标题栏识别前台窗口标题写入会话时间线(覆盖 Win7 … Server 2025 / Win11 各代标题栏样式)。
  • 1.0 直接换 tag 重建容器即可升级,OCR 配置首次启动自动写入已有 config.yaml。

功能一览

  • 协议接入:SSH / SFTP / Telnet、RDP、VNC、WinRM、MySQL / PostgreSQL / SQL Server / Oracle / Redis / MongoDB、Kubernetes
  • 两种使用方式:网页终端(xterm、网页 RDP/VNC 桌面、浏览器文件传输)+ 原生客户端代理(本地 ssh / mstsc / 数据库客户端 / helper 一键拉起)
  • 授权模型:主体(用户/用户组/部门)→ 资产/节点 × 账号 × 协议 × 动作(连接、上传、下载、剪贴板、端口转发…),支持有效期、审批与策略
  • 审计:全量会话记录、SSH/RDP/VNC 操作录像回放、录像 OCR 文字检索、RDP 窗口标题实时时间线、命令过滤与阻断、数据库 SQL 过滤
  • 网络网关:被隔离网段通过轻量 agent(gw-*)经加密隧道转发,资产路由按 资产 → 节点 → 直连 解析
  • 运维自动化:改密/轮换、WinRM 脚本与作业中心、发布应用(RemoteApp)、命令复核
  • 安全设计:凭据加密保管、一次性连接令牌、主机指纹绑定许可、非 root 容器运行

快速开始

docker run -d --name webterminal --restart unless-stopped \
  -p 443:443 -p 80:80 \
  -p 2222:2222 -p 3389:3389 \
  -p 13306:13306 -p 15432:15432 -p 11433:11433 -p 11521:11521 \
  -p 16379:16379 -p 37017:37017 \
  -v webterminal-data:/data \
  webterminal/webterminal:1.1

打开 https://<主机IP>(80 自动跳转 443,自签名证书首次启动自动生成),进入初始化向导设置管理员密码即可使用。初始化完成后登录账号为 admin,密码即向导中设置的密码。443 承载网页端全部功能;2222/3389/数据库端口是原生客户端代理,按需保留。

初始化向导

Linux 主机建议增加主机指纹挂载(用于在线登记试用/许可绑定):

  -v /etc/machine-id:/host/machine-id:ro \
  -v /sys/class/dmi/id/product_uuid:/host/product_uuid:ro

端口说明

端口 用途 必需
443 控制台 HTTPS(网页终端 / API / 文件传输) 是
80 仅 301 跳转 443 建议
2222 SSH / SFTP 原生代理 按需
3389 RDP 原生代理 按需
13306 / 15432 / 11433 / 11521 MySQL / PostgreSQL / SQL Server / Oracle 代理 按需
16379 / 37017 Redis / MongoDB 代理 按需

只映射用到的端口即可。宿主机映射端口与容器端口不一致时,用 BASTION_PUBLIC_HOST / BASTION_SSH_PROXY_PORT / BASTION_RDP_PROXY_PORT 声明对外地址(否则签发的 wterm:// 连接串会指向错误端口),例如 -p 12222:2222 -e BASTION_SSH_PROXY_PORT=12222。

界面预览

资产中心 工作台
资产中心 工作台
本地客户端连接 会话审计
本地客户端 会话审计
网关 授权许可
网关 授权许可

试用与授权

默认安装为社区版:受限协议(RDP / VNC / 数据库类)50 资产、5 并发会话,单副本、1 网关,SSH 类资产不限。提供15 天在线试用解锁全部企业功能:

  • 在线登记试用(推荐):Linux 主机挂载上述 /host 指纹文件后,控制台「系统设置 → 授权许可 → 在线登记试用」一键完成,15 天全功能。
  • 离线试用:macOS / Windows Docker Desktop 或无稳定指纹的环境,「授权许可 → 生成申请码」得到 WTR2. 申请码,联系厂商换取 WTS1. 授权文件后在同页面上传。
  • 正式授权:企业版签发序列号 + 授权文件,绑定安装实例(资产规模、会话并发、副本数、网关数按需约定)。

授权页实时显示当前许可状态、到期时间与各功能可用性;到期或超限时安全策略类功能保持只读不失效,运维审计不中断。

数据与升级

  • 全部状态在 /data 卷:SQLite、配置、TLS 证书、SSH host key、会话录像、日志。备份即打包该卷。
  • 升级:docker pull 新 tag 后重建容器即可,数据自动沿用。1.0 → 1.1 无需额外操作:首次启动会把内置 OCR 地址和随机 token 写入 /data/config.yaml 的 bastion.ocr。
  • 替换正式 HTTPS 证书:覆盖 /data/ssl/server.crt / server.key 后重启。

说明

  • 容器内以非 root 用户运行;原生代理端口在初始化完成后才开始监听。
  • OCR 引擎只监听容器内 127.0.0.1:8866,空闲约 100 MB、识别时峰值数百 MB,建议给容器 1 GB 以上内存;OCR_WORKERS / OCR_THREADS(默认 1 / 4)可调,-e BASTION_EMBEDDED_OCR=0 可完全关闭。
  • Web 资产(隔离远程浏览器会话)不在单容器镜像内:它按会话通过 Docker API 拉起 weboat/chromium 浏览器容器,需要宿主机 Docker 套接字(BASTION_WEBOAT_DOCKER_HOST)和该镜像,请使用 docker-compose 部署方式。
  • 网络网关 agent(Linux systemd / OpenRC、Windows 服务)在控制台「网关」页生成一行安装命令,自带 SHA-256 校验与主机密钥锁定。
  • 推荐使用 1.1。本仓库源码为早期 Django 实现(0.x),已停止维护;旧版部署与使用文档见 README_LEGACY.md 和 docs/。

探索相关项目