
简介
什么是 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 更快捷
bash
# 新建文件夹 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。
在低内核版本上会出现下面的错误
log
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 目录

接下来执行下面的命令
bash
# 一键启动
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
yaml
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 登录到您的群晖,执行下面的命令:
bash
# 新建文件夹 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

接下来就可以操作了

注意事项
- 必须使用 HTTPS 访问 :管理界面仅通过
HTTPS提供,首次访问会有自签名证书警告,可替换为域名证书(或放在反向代理后面) - 端口冲突 :如果
2222已被系统SSH占用,可改成本地端口如10222:2222 - 域名/证书配置 :如果有正式域名和证书,最好在
setup后及时替换/data中的自签名证书 - 安全建议 :如需暴露到公网,建议配合
Cloudflare Tunnel/ 反向代理,并启用Warpgate内置的暴力破解防护(Login Protection)做安全封禁
参考文档
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