Apache Guacamole 的部署方法与原理说明。
这是一份面向工程实践的完整部署指南,包括原理、环境准备、部署方式(Docker 与手动安装)、多用户访问配置、远程协议支持(RDP/VNC/SSH)以及公网访问设置。
🧠 一、Apache Guacamole 简介与工作原理
Apache Guacamole 是一个无客户端的远程桌面网关(Remote Desktop Gateway),支持通过网页浏览器直接访问 RDP、VNC、SSH 等远程主机,无需在客户端安装任何插件或软件。
它的核心由三部分组成:
| 组件 | 作用 | 部署位置 |
|---|---|---|
| guacd | 协议代理守护进程,负责与远程主机通信(VNC/RDP/SSH) | 后端服务器 |
| guacamole.war | Web 应用(Tomcat),负责网页界面和身份验证 | Web 服务器 |
| 数据库(MySQL/PostgreSQL) | 存储用户、连接配置、权限信息 | 可同机或远程部署 |
🧩 工作流程:
- 用户访问 Web 界面(通过浏览器)。
- Guacamole Server(guacd)根据数据库配置建立与目标主机的远程连接。
- Web 界面通过 WebSocket 与 guacd 交互,实现远程桌面画面传输与输入事件中继。
⚙️ 二、系统环境准备
建议使用 Ubuntu 20.04+ 或 CentOS 7/8+,并确保系统满足以下条件:
| 软件 | 版本建议 | 说明 |
|---|---|---|
| Java JDK | 11+ | 运行 guacamole.war |
| Tomcat | 9+ | Web 容器 |
| MySQL/PostgreSQL | 最新稳定版 | 用户与连接配置 |
| Docker(推荐) | 20+ | 一键部署方式 |
| 防火墙 | 已开放 8080、4822、22、3389、5900 端口 | 分别为 Web、guacd、SSH、RDP、VNC 端口 |
🚀 三、部署方式一:Docker 一键部署(推荐)
Docker 是最简洁、可移植性最强的部署方式。
1️⃣ 拉取镜像
docker pull guacamole/guacd
docker pull guacamole/guacamole
docker pull mysql:8.0
2️⃣ 启动 MySQL 数据库
docker run --name guac-mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-e MYSQL_DATABASE=guacamole_db \
-e MYSQL_USER=guacuser \
-e MYSQL_PASSWORD=guacpass \
-d mysql:8.0
3️⃣ 初始化数据库结构
下载 SQL 初始化文件:
docker run -- guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > initdb.sql
docker initdb.sql guac-mysql:/initdb.sql
docker -it guac-mysql bash -c


