Warpgate 是一个智能且完全透明的 SSH、HTTPS、Kubernetes、MySQL、PostgreSQL、RDP 和 VNC 堡垒主机,不需要客户端应用或 SSH 包装器。
支持方:
完整文档可在 warpgate.null.page 获取,包括:
|
|
|
请使用 GitHub 的漏洞报告系统。
Warpgate 正在企业环境中被积极使用。
接下来计划和工作中的内容在公开的路线图上跟踪。
Warpgate 是您部署在堡垒/DMZ 主机上的服务,它将接受 SSH、HTTPS、Kubernetes、MySQL、PostgreSQL、RDP 和 VNC 连接,并提供(可选的)Web 管理 UI。
运行 warpgate setup 以交互方式生成配置文件,包括端口绑定。详情请参阅快速入门。
它接收带有特定格式凭据的连接,在本地对用户进行身份验证,自行连接到目标,然后将双方连接在一起,同时(可选地)录制会话。
通过 HTTPS 连接时,Warpgate 会呈现可用目标的选择列表,然后将会话中的所有流量代理到所选目标。您可以随时在目标之间切换。
您可以通过管理 UI 管理目标和用户列表并将它们相互分配,会话历史存储在 SQLite 数据库中(默认:/var/lib/warpgate)。
您还可以使用管理 Web 界面查看实时会话列表、查看会话录制、日志等。
2025 年底,本项目开始接受 AI 辅助贡献。贡献者必须披露 AI 的使用情况。我相信,无论是否使用 AI 辅助,只要对所有 PR 应用相同的高质量标准,就不需要在质量或安全性上做出任何牺牲。
由于 AI 介于无脑跟风者和自动补全用户之间,我相信对其使用保持透明有助于确立并限制 AI 在本项目中的位置。
本项目的架构和安全决策 100% 由人类做出。
cargo install justjust npm installjust npm run buildcargo build(可选 --release)二进制文件位于 target/{debug|release}。
poem-websea-orm + sqlx 使用 SQLiterusshjust openapi-all。感谢这些优秀的人(表情符号键):
本项目遵循 all-contributors 规范。欢迎任何形式的贡献!
| Warpgate | SSH 跳板主机 | VPN | Teleport |
|---|
| ✅ 用户与服务之间精确的 1:1 分配 | (通常)可完全访问跳板主机后面的网络 | (通常)可完全访问网络 | ✅ 用户与服务之间精确的 1:1 分配 |
| ✅ 无需自定义客户端 | 需要跳板主机配置 | ✅ 无需自定义客户端 | 需要自定义客户端 |
| ✅ 开箱即用的 2FA | 🟡 可通过额外的 PAM 插件实现 2FA | 🟡 取决于提供商 | ✅ 开箱即用的 2FA |
| ✅ 开箱即用的 SSO | 🟡 可通过额外的 PAM 插件实现 SSO | 🟡 取决于提供商 | 付费 |
| ✅ 命令级审计 | 🟡 跳板主机上的连接级审计,如果授予 root 权限,则无法在目标上进行安全审计 | 如果授予 root 权限,则无法在目标上进行安全审计 | ✅ 命令级审计 |
| ✅ 完整会话录制 | 如果授予 root 权限,则无法在目标上进行安全录制 | 如果授予 root 权限,则无法在目标上进行安全录制 | ✅ 完整会话录制 |
| ✅ 非交互式连接 | 🟡 如果客户端原生支持跳板主机,则可以进行非交互式连接 | ✅ 非交互式连接 | 非交互式连接需要使用 SSH 客户端包装器或运行隧道 |
| ✅ 自托管,您拥有数据 | ✅ 自托管,您拥有数据 | 🟡 取决于提供商 | SaaS |
| ✅ 内置暴力破解防护 | 🟡 需要设置 fail2ban | 🟡 取决于提供商 | ✅ 内置暴力破解防护 |
![]() Hariharan 💻 |
![]() kamilkrzeminski 💻 |
![]() Lars 💻 |
Hugues Granger 💻 |