
warpgate v0.30.0
全透明的 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 |
|---|---|---|---|
| ✅ 用户与服务之间精确的 1:1 分配 | (通常)对跳板主机后方网络的完全访问权限 | (通常)对网络的完全访问权限 | ✅ 用户与服务之间精确的 1:1 分配 |
| ✅ 无需自定义客户端 | 需要配置跳板主机 | ✅ 无需自定义客户端 | 需要自定义客户端 |
| ✅ 开箱即用的 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 管理界面。
运行 warpgate setup 以交互方式生成配置文件,包括端口绑定。详情请参阅入门指南。
它接收带有特定格式凭据的连接,在本地对用户进行身份验证,自行连接到目标,然后将双方连接在一起,并(可选地)录制会话。
通过 HTTPS 连接时,Warpgate 会呈现可用目标的列表,然后将会话中的所有流量代理到所选目标。你可以随时在目标之间切换。
你可以通过管理界面管理目标和用户列表,并将它们相互分配,会话历史记录存储在 SQLite 数据库中(默认位置:/var/lib/warpgate)。
你还可以使用管理 Web 界面查看实时会话列表、审阅会话录制、日志等。
AI 透明度声明
2025 年底,本项目开始接受 AI 辅助的贡献。贡献者必须披露 AI 的使用情况。我相信,通过对所有 PR(无论是否由 AI 辅助)应用同样严格的质量标准,无需在质量或安全性上做出任何牺牲。
由于 AI 是一个从毫无思考的“氛围”爱好者到自动补全用户的光谱,我相信对其使用保持透明有助于确立并界定 AI 在本项目中的位置。
本项目的架构和安全决策 100% 由人类做出。
贡献 / 从源码构建
- 你需要 Rust、NodeJS 和 NPM
- 克隆仓库
- 使用 Just 来运行任务 - 安装它:
cargo install just - 安装管理界面的依赖:
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。
贡献者 ✨
感谢这些出色的人(emoji key):