返回目录
开源项目安全工具类新手

Warpgate:无需客户端软件的透明 SSH/HTTPS/Kubernetes/数据库/RDP/VNC 堡垒机与 PAM

Warpgate 是一个智能且完全透明的堡垒机(Bastion Host)/特权访问管理(PAM)服务,支持 SSH、HTTPS、Kubernetes、MySQL、PostgreSQL、RDP 与 VNC,无需安装客户端程序或 SSH 包装器即可使用,内置会话录制与回放、浏览器端远程访问、2FA/SSO、防暴力破解,采用 100% 安全 Rust 编写的单二进制、无依赖部署形态。

0 次阅读2026/09/18 发布
Warpgate:无需客户端软件的透明 SSH/HTTPS/Kubernetes/数据库/RDP/VNC 堡垒机与 PAM 来源图片

社区作者 · zZz

它解决什么问题

Warpgate 是一个部署在 DMZ 或堡垒机主机上的服务,作为 SSH、HTTPS、Kubernetes、MySQL、PostgreSQL、RDP 和 VNC 的统一入口,不会要求用户安装客户端应用或 SSH 包装器。

核心功能与特性:

  • 将服务部署在 DMZ 后,添加用户账户,并轻松把用户分配到网络内的特定主机和 URL(用户与服务之间精确的 1:1 分配)。
  • 记录每一次会话,可通过内置的管理 Web UI 实时查看并事后回放。
  • 内置浏览器端的 SSH、RDP 和 VNC 访问;原生客户端仍可继续使用。
  • 不是跳板机(jump host)——连接被直接转发到目标,对客户端完全透明。
  • 原生支持 2FA 与 SSO(TOTP 与 OpenID Connect)。
  • 内置防暴力破解保护,支持 IP 封禁与用户锁定。
  • 单二进制、无依赖。
  • 使用 100% 安全 Rust 编写。

工作原理:Warpgate 是部署在堡垒机/DMZ 主机上的服务,接受 SSH、HTTPS、Kubernetes、MySQL、PostgreSQL、RDP 和 VNC 连接,并提供(可选的)Web 管理 UI。运行 warpgate setup 可交互式生成配置文件(包括端口绑定)。它以特定格式的凭据接收连接,在本地对用户进行认证,自行连接目标,然后把双方连接在一起,并可选地录制会话。通过 HTTPS 连接时,Warpgate 会呈现可用目标列表,随后把会话中的所有流量代理到所选目标,且可随时在目标之间切换。

目标与用户列表通过管理 UI 管理并相互分配,会话历史存储在 SQLite 数据库中(默认位于 /var/lib/warpgate)。管理 Web 界面还可用于查看实时会话列表、回放会话录像、查看日志等。

与跳板机 / VPN / Teleport 的对比要点(来源以表格形式给出):

  • 用户与服务精确 1:1 分配:Warpgate、Teleport 支持;SSH 跳板机与 VPN 通常是访问跳板机/VPN 之后的整个网络。
  • 无需自定义客户端:Warpgate、VPN 支持;跳板机需要配置;Teleport 需要自定义客户端。
  • 开箱即用 2FA:Warpgate、Teleport 支持;跳板机与 VPN 视情况或需额外 PAM 插件。
  • 开箱即用 SSO:Warpgate 支持;跳板机需额外 PAM 插件;VPN 视供应商而定;Teleport 为付费功能。
  • 命令级审计:Warpgate、Teleport 支持;跳板机通常只能做连接级审计,若目标上有 root 权限则无法在目标侧安全审计;VPN 同理。
  • 完整会话录制:Warpgate、Teleport 支持;跳板机与 VPN 在目标存在 root 权限时无法安全录制。
  • 非交互式连接:Warpgate、VPN 支持;跳板机需客户端原生支持跳板;Teleport 需要 SSH 客户端包装器或隧道。
  • 自托管、数据自有:Warpgate 与 SSH 跳板机、VPN 自建方案支持;Teleport 为 SaaS。
  • 内置防暴力破解:Warpgate、Teleport 支持;跳板机通常需 fail2ban;VPN 视供应商而定。

技术栈:Rust(HTTP 使用 poem-web;数据库通过 sea-orm + sqlx 使用 SQLite;SSH 使用 russh)、TypeScript、Svelte 5、Bootstrap。后端管理与用户面向的 API 使用自动生成的 OpenAPI schema 和 SDK;修改查询/响应结构后运行 just openapi-all 更新 SDK。

项目状态与治理:Warpgate 已在企业环境中被积极使用,后续计划在公开 roadmap 中跟踪。安全问题请使用 GitHub 的漏洞报告系统提交。

AI 透明度声明:2025 年末起该项目开始接受 AI 辅助贡献,贡献者必须披露 AI 使用情况;项目对是否使用 AI 的 PR 采用同样高标准,认为无需在质量或安全上妥协,架构与安全决策 100% 由人类做出。

贡献者:README 列出大量 all-contributors 规范下的贡献者,涵盖代码(💻)与资金(💵)等贡献类型。

— 本文由 AI 根据公开来源辅助整理,命令、版本与许可证请在使用前到原始页面复核。

安装 / 开始使用

一、使用官方发布方式(推荐)

  1. 阅读官方 Getting started 文档页面,或使用 Docker 版 Getting started 文档。
  1. 下载 Release / beta 二进制,或选择 Nightly 构建。
  1. 在堡垒机 / DMZ 主机上部署该服务。
  1. 运行 warpgate setup,以交互方式生成配置文件,其中包括端口绑定设置(详见 Getting started 文档)。
  1. 通过管理 Web UI 添加用户账户与目标主机/URL,并将用户与具体主机和 URL 进行分配。
  1. 会话历史默认存储在 SQLite 数据库中,路径为 /var/lib/warpgate;在管理 Web 界面中可查看实时会话列表、回放会话录像与日志。

二、从源码构建(Contributing / building from source) 准备环境:需要安装 Rust、NodeJS 和 NPM。

  1. 克隆仓库(clone the repo)。
  1. 任务运行使用 Just,安装命令:cargo install just
  1. 安装管理 UI 依赖:just npm install
  1. 构建前端:just npm run build
  1. 构建 Warpgate:cargo build(可选加 --release)。
  1. 构建产物二进制位于 target/{debug|release}。

三、常见问题与提示

  • 如果只使用原生客户端,仍需保证客户端使用特定格式的凭据连接 Warpgate,由 Warpgate 在本地认证后转发至目标。
  • 通过 HTTPS 连接时可随时在目标之间切换。
  • 修改后端查询/响应结构后,需运行 just openapi-all 更新自动生成的 OpenAPI SDK。
  • 安全漏洞请通过 GitHub 的漏洞报告系统提交,而非公开 issue。

来源教程配图

教程配图
配图 1 · 教程配图查看原图
Shows a black logo in light color mode and a white one in dark color mode.
配图 2 · Shows a black logo in light color mode and a white one in dark color mode.查看原图
教程配图
配图 3 · 教程配图查看原图
image
配图 4 · image查看原图
教程配图
配图 5 · 教程配图查看原图
教程配图
配图 6 · 教程配图查看原图
教程配图
配图 7 · 教程配图查看原图

适用场景

在企业 DMZ 或堡垒机主机上统一托管 SSH
HTTPS
Kubernetes
MySQL
PostgreSQL
RDP
VNC 访问入口
为运维与研发人员按用户到具体主机/URL 做精确的 1:1 访问分配
替代粗粒度的 VPN 接入
对高风险运维会话进行全程录制与事后回放审计
满足合规与排障需求
通过浏览器直接访问 SSH