
warpgate v0.29.0-beta.1
全透明的 SSH、HTTPS、Kubernetes、数据库及 RDP/VNC 堡垒机/PAM,无需额外客户端软件
Warpgate 是一个智能且完全透明的 SSH、HTTPS、Kubernetes、MySQL、PostgreSQL、RDP 和 VNC 堡垒主机,无需客户端应用或 SSH 包装器。
- 将其部署在 DMZ 中,添加用户账户,并轻松将其分配给网络内的特定主机和 URL。
- Warpgate 会为你记录每个会话,以便稍后通过内置的管理 Web UI 进行(实时)查看和回放。
- 内置基于浏览器的 SSH、RDP 和 VNC 访问;原生客户端继续可用。
- 不是跳板机——以对客户端完全透明的方式将连接直接转发到目标。
- 原生 2FA 和 SSO 支持(TOTP 和 OpenID Connect)
- 内置暴力破解防护,支持 IP 封禁和用户锁定
- 单一二进制文件,无依赖。
- 100% 使用安全的 Rust 编写。
支持者:
快速开始与下载
- 请参阅快速开始文档页面(或 Docker 上的快速开始)。
- 发布版 / 测试版二进制文件
- 每夜构建
文档
完整文档可在 warpgate.null.page 获取,包括:
Warpgate 与跳板机 / VPN / Teleport 有何不同?
| Warpgate | SSH 跳板机 | VPN | Teleport |
|---|---|---|---|
| ✅ 用户与服务之间精确的一对一分配 | (通常)可完全访问跳板机后面的网络 | (通常)可完全访问网络 | ✅ 用户与服务之间精确的一对一分配 |
| ✅ 无需自定义客户端 | 需要配置跳板机 | ✅ 无需自定义客户端 | 需要自定义客户端 |
| ✅ 开箱即用的 2FA | 🟡 可通过额外的 PAM 插件实现 2FA | 🟡 取决于提供商 | ✅ 开箱即用的 2FA |
| ✅ 开箱即用的 SSO | 🟡 可通过额外的 PAM 插件实现 SSO | 🟡 取决于提供商 | 付费 |
| ✅ 命令级审计 | 🟡 跳板机上的连接级审计,如果授予 root 访问权限,目标上无安全审计 | 如果授予 root 访问权限,目标上无安全审计 | ✅ 命令级审计 |
| ✅ 完整会话录制 | 如果授予 root 访问权限,目标上无法进行安全录制 | 如果授予 root 访问权限,目标上无法进行安全录制 | ✅ 完整会话录制 |
| ✅ 非交互式连接 | 🟡 如果客户端原生支持跳板机,则可以进行非交互式连接 | ✅ 非交互式连接 | 非交互式连接需要使用 SSH 客户端包装器或运行隧道 |
| ✅ 自托管,数据归你所有 | ✅ 自托管,数据归你所有 | 🟡 取决于提供商 | SaaS |
| ✅ 内置暴力破解防护 | 🟡 需要设置 fail2ban | 🟡 取决于提供商 | ✅ 内置暴力破解防护 |
|
|
|
报告安全问题
请使用 GitHub 的漏洞报告系统。
项目状态
Warpgate 正在企业环境中被积极使用。
下一步的计划和正在进行的工作在公开的路线图上跟踪。
工作原理
Warpgate 是一个部署在堡垒机/DMZ 主机上的服务,它将接受 SSH、HTTPS、Kubernetes、MySQL、PostgreSQL、RDP 和 VNC 连接,并提供(可选的)Web 管理 UI。
运行 warpgate setup 以交互方式生成配置文件,包括端口绑定。详情请参阅快速开始。
它接收带有特定格式凭证的连接,在本地对用户进行身份验证,自行连接到目标,然后将双方连接在一起,同时(可选地)录制会话。
通过 HTTPS 连接时,Warpgate 会呈现可用目标的选项,然后将会话中的所有流量代理到所选目标。你可以随时在目标之间切换。
你可以通过管理 UI 管理目标和用户列表,并将它们相互分配,会话历史记录存储在 SQLite 数据库中(默认位置:/var/lib/warpgate)。
你还可以使用管理 Web 界面查看实时会话列表、查看会话录制、日志等。
AI 透明度披露
2025 年底,本项目开始接受 AI 辅助的贡献。贡献者必须披露 AI 的使用情况。我相信,通过对所有 PR(无论是否由 AI 辅助)应用同样高质量的标准,无需在质量或安全性上做出任何牺牲。
由于 AI 是一个从无脑跟风者到自动补全用户之间的光谱,我相信对其使用保持透明有助于确立并限制 AI 在本项目中的位置。
本项目的架构和安全决策 100% 由人类做出。
贡献 / 从源码构建
- 你需要 Rust、NodeJS 和 NPM
- 克隆仓库
- 使用 Just 来运行任务——安装它:
cargo install just - 安装管理 UI 依赖:
just npm install - 构建前端:
just npm run build - 构建 Warpgate:
cargo build(可选--release)
二进制文件位于 target/{debug|release}。
技术栈
- Rust 🦀
- HTTP:
poem-web - 数据库:通过
sea-orm+sqlx使用 SQLite - SSH:
russh
- HTTP:
- Typescript
- Svelte 5
- Bootstrap
后端 API
- Warpgate 管理端和用户端 API 使用自动生成的 OpenAPI schema 和 SDK。在更改查询/响应结构后,要更新 SDK,请运行
just openapi-all。