
简介
什么是 Warpgate ?
Warpgate 是一个开源的智能堡垒机(bastion host)/ 特权访问管理(PAM)平台,支持 SSH、HTTPS、Kubernetes、MySQL、PostgreSQL、RDP 和 VNC 等多种协议。它可以让用户通过浏览器或原生客户端,在一个入口安全地访问内网的服务器、Web 应用和数据库。
主要特点
- 多协议支持:同时代理 SSH、HTTPS、Kubernetes、MySQL、PostgreSQL、RDP 和 VNC,一套系统管理所有入口
- 无需客户端:原生 SSH 客户端、浏览器、数据库客户端均可直接使用,无需安装 agent 或专用 wrapper
- 浏览器内置访问:Web 界面内置 SSH、RDP、VNC 终端,浏览器即可操作内网资源
- 会话录制与审计:所有会话自动录制,可在管理界面实时查看或回放,支持命令级审计
- 双因素认证:内置 TOTP(2FA)与 OpenID Connect(SSO)单点登录支持
- 暴力破解防护:内置 IP 封禁与用户锁定机制,无需额外配置 fail2ban
- 细粒度授权:用户与目标服务 1:1 精确授权,通过角色(Roles)管理访问权限
- 单一二进制:100% 安全 Rust 编写,单文件运行,零外部依赖
- 自托管:数据完全由自己掌控,配置与数据库都存放在本地 SQLite 中
- 开源免费:基于 Apache-2.0 协议开源,可免费使用和修改
应用场景
- 服务器统一入口:将多台服务器置于 Warpgate 之后,运维人员通过一个 2222 端口访问所有机器,并统一记录所有操作
- HomeLab 远程访问:家庭实验室多台设备,通过一个 HTTPS 入口即可访问全部 SSH 目标和 Web 应用,配合 Cloudflare Tunnel 可安全暴露到公网
- 数据库安全代理:通过 MySQL / PostgreSQL 代理端口访问内网数据库,无需将数据库直接暴露在公网
- 企业合规审计:满足等保等合规要求,精确记录所有 SSH 会话,支持会话回放和操作审计
- Kubernetes 集群管理:作为 Kubernetes 代理,安全地管理多个 K8s 集群
- Web 应用集中入口:通过 HTTPS 域名绑定,在一个入口代理内网多个 Web 应用,可按用户授权访问不同的应用

Warpgate 是一个强调"精确授权 + 完整审计"的开源堡垒机平台,是传统跳板机和商用 PAM 系统的轻量级替代方案。
安装
在群晖上以 Docker 方式安装。
Warpgate 的 Docker 镜像托管在 ghcr.io,且需要经过 setup 初始化配置,因此使用命令行方式安装。
本文写作时, latest 版本对应为 0.27.5;

docker cli 安装
如果你熟悉命令行,可能用 docker cli 更快捷
# 新建文件夹 warpgate 和 子目录
mkdir -p /volume1/docker/warpgate/data
# 进入 warpgate 目录
cd /volume1/docker/warpgate
# 修改目录权限
chmod a+rw data
# 初始化配置(交互式,需设置 admin 密码)
docker run –rm -it -v $(pwd)/data:/data ghcr.io/warp-tech/warpgate setup
提示: setup 命令为交互式初始化,会引导你设置和 admin 密码,配置会自动写入 /data。
在低内核版本上会出现下面的错误
RNDGETENTCNT on /dev/urandom indicates that the entropy pool does not have enough entropy. Rather than continue with poor entropy, this process will block until entropy is available.
如果你看到上面👆这个错误,建议换机器安装
? Do you want to record user sessions? (y/n) › 默认就是 yes,只要回车就行

接下来设置 admin 的密码
注意:密码不会回显,千万不要输错了

设置完成

配置会写入到 /data 目录

接下来执行下面的命令
# 一键启动
docker run -d \\
–name=warpgate \\
–restart=unless-stopped \\
-p 2222:2222 \\
-p 8888:8888 \\
-p 33306:33306 \\
-p 55432:55432 \\
-v $(pwd)/data:/data \\
ghcr.io/warp-tech/warpgate
docker-compose 安装
也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件
官方 Docker Compose 配置参考:https://github.com/warp-tech/warpgate/blob/main/docker/docker-compose.yml
version: '3.8'
services:
warpgate:
image: ghcr.io/warp–tech/warpgate
container_name: warpgate
restart: unless–stopped
ports:
– "2222:2222" # SSH 端口
– "8888:8888" # Web 管理界面端口
– "33306:33306" # MySQL 代理端口
– "55432:55432" # PostgreSQL 代理端口
volumes:
– ./data:/data # 存放配置和数据库
stdin_open: true
tty: true
然后通过 SSH 登录到您的群晖,执行下面的命令:
# 新建文件夹 warpgate 和 子目录
mkdir -p /volume1/docker/warpgate/data
# 进入 warpgate 目录
cd /volume1/docker/warpgate
# 修改目录权限
chmod a+rw data
# 将 docker-compose.yml 放入当前目录
# 初始化配置(交互式,需生成配置文件)
docker-compose run warpgate setup
# 一键启动
docker-compose up -d

运行
在浏览器中访问 https://<群晖IP>:8888/@warpgate/admin
注意是 https 协议,使用 http 会提示错误

https 也会有错误提示

点 高级 –> 继续前往

现在可以看到登录界面了

用 admin 和我们设置的密码登录

添加主机
点 Add a target 添加主机

在 Targets 中添加要访问的目标(SSH / HTTP / MySQL / PostgreSQL / RDP / VNC / Kubernetes)

以群晖主机自身为例,选 SSH

输入主机IP 、端口等信息

普通用户访问 https://<群晖IP>:8888 后会看到可用的目标列表,点击即可通过浏览器建立连接。

第一次需要点 Accept and connect

接下来就可以操作了

注意事项
参考文档
Warpgate — Fully transparent SSH, HTTPS, Kubernetes, MySQL and Postgres bastion/PAM 地址:https://github.com/warp-tech/warpgate
Warpgate 官方文档 地址:https://warpgate.null.page/
Docker 快速入门 地址:https://warpgate.null.page/getting-started-on-docker/
warp-tech/warpgate 容器镜像(GHCR) 地址:https://github.com/warp-tech/warpgate/pkgs/container/warpgate





