一、准备工作:检查 Docker 与 Docker Compose
1. 检查 Docker 安装与版本
# 检查是否安装
docker --version
# 检查服务是否运行
systemctl status docker
# 如果没装,一键安装(CentOS/RHEL)
yum install -y docker-ce docker-ce-cli containerd.io
systemctl enable --now docker
2. 检查 Docker Compose 安装与版本
# 检查是否安装
docker-compose --version
# 如果没装,一键安装(Linux通用)
curl -L "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
二、编写 docker-compose.yml 文件
直接复制下面的配置(已修正语法、替换占位符),保存为 docker-compose.yml
version: '3'
services:
guacd:
image: guacamole/guacd
container_name: guacd
restart: always
mysql:
image: mysql:8
container_name: mysql
environment:
MYSQL_ROOT_PASSWORD: root_password_here # 请修改
MYSQL_DATABASE: guacamole_db
MYSQL_USER: guacamole_user
MYSQL_PASSWORD: guacamole_password_here # 请修改
volumes:
- ./data/mysql:/var/lib/mysql
- ./init:/docker-entrypoint-initdb.d
restart: always
guacamole:
image: guacamole/guacamole
container_name: guacamole
depends_on:
- guacd
- mysql
environment:
GUACD_HOSTNAME: guacd
MYSQL_HOSTNAME: mysql
MYSQL_DATABASE: guacamole_db
MYSQL_USERNAME: guacamole_user
MYSQL_PASSWORD: guacamole_password_here # 请修改
ports:
- "8080:8080" # Guacamole内部服务端口
restart: always
三、初始化数据库(关键步骤)
# 1. 镜像拉取
docker-compose pull
# 2. 创建初始化脚本目录
mkdir -p ./init ./data/mysql
# 3. 生成 MySQL 初始化 SQL
docker run --rm guacamole/guacamole \
/opt/guacamole/bin/initdb.sh --mysql > ./init/initdb.sql
# 4. 启动所有容器
docker-compose up -d
# 5. 检查容器状态,确认全部正常运行
docker-compose ps
如果初始化失败数据库没有就进行手动注入
# 导入 SQL 脚本
docker exec -i guacamole-mysql mysql \
-uroot -pRootPass123! guacamole_db < ./init/initdb.sql
四、访问 Web 界面并配置远程连接
1. 登录 Guacamole 后台
浏览器访问:http://你的服务器IP:8080/guacamole
- 默认账号:
guacadmin - 默认密码:
guacadmin
登录后务必修改密码:右上角头像 → 设置 → 用户 → 修改密码。
2. 配置 RDP 远程连接
- 右上角「设置」→「连接」→「新建连接」
- 基础信息:
- 名称:自定义(如 Win10 办公机)
- 协议:
RDP
- 关键参数填写:
表格
模块 字段 示例 / 说明 网络 主机名 目标 Windows IP(如 192.168.1.100) 网络 端口 3389(默认)认证 用户名 Windows 登录账号(如 Administrator) 认证 密码 Windows 登录密码 认证 安全模式 NLA(优先)/TLS/RDP认证 忽略服务器证书 ✅️勾选剪贴板 禁用从远程复制 ❌不勾选 剪贴板 禁用从客户端粘贴 ❌不勾选 - 保存连接,返回主页点击即可连接。
3. 配置 VNC 远程连接
- 新建连接,协议选
VNC - 关键参数填写:
表格
模块 字段 示例 / 说明 网络 主机名 目标服务器 IP 网络 端口 5901(默认,根据你的 VNC 端口调整)认证 密码 VNC 设置的密码 显示 颜色深度 24性能 禁用图形加速 ✅勾上(提升兼容性) - 保存后即可连接。
4. 配置 SSH 远程连接
- 新建连接,协议选
SSH - 关键参数填写:
表格
模块 字段 示例 / 说明 网络 主机名 目标 Linux 服务器 IP 网络 端口 22(默认)认证 用户名 Linux 登录账号(如 root) 认证 密码 Linux 登录密码(或配置密钥) 终端 字体大小 14终端 颜色方案 Solarized Dark - 保存后即可连接。
nginx代理
location /guacamole/ {
# 关键:将 /guacamole/ 下的请求转发到内网 Guacamole 的相同路径
proxy_pass http://你的服务器IP:8080/guacamole/;
# 必须关闭缓冲,支持实时数据流
proxy_buffering off;
proxy_http_version 1.1;
# 传递真实客户端信息
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $host;
# WebSocket 支持(Guacamole 依赖)
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
# 修正 Cookie 路径,使其对 /guacamole/ 生效
proxy_cookie_path /guacamole/ /guacamole/;
}

1925

被折叠的 条评论
为什么被折叠?



