一、安装 Guacamole(基于 Docker)
1. 创建数据库容器
ini
docker run -d --name guacamoledb \
-e MYSQL_ROOT_PASSWORD=rootpass \
-e MYSQL_DATABASE=guacdb \
-e MYSQL_USER=guacuser \
-e MYSQL_PASSWORD=guacpass \
mysql:5.7
2. 生成并初始化数据库
bash
# 生成初始化 SQL 文件
docker run --rm guacamole/guacamole \
/opt/guacamole/bin/initdb.sh --mysql > initdb.sql
# 将 SQL 文件复制到数据库容器
docker cp initdb.sql guacamoledb:/docker-entrypoint-initdb.d/initdb.sql
# 执行 SQL 初始化(根据环境选择、两种方式任选其一)
docker exec -i guacamoledb bash -c \
'mysql -uroot -prootpass guacdb </docker-entrypoint-initdb.d/initdb.sql'
docker exec -i guacamoledb mysql -uroot -prootpass guacdb < initdb.sql
3. 启动 Guacamole 服务
ini
# 启动 guacd 代理服务
docker run -d --name guacd --restart=always guacamole/guacd
# 启动 Guacamole Web 服务
docker run -d --name guacamole --restart=always \
-p 8080:8080 \
--link guacd:guacd \
--link guacamoledb:mysql \
-e MYSQL_DATABASE=guacdb \
-e MYSQL_USER=guacuser \
-e MYSQL_PASSWORD=guacpass \
guacamole/guacamole
4. 访问 Guacamole
浏览器访问:
http://localhost:8080/guacamole
默认账号密码:guacadmin / guacadmin
二、安装 TightVNC Server(Windows)
1. 下载安装
- 官网地址:www.tightvnc.com/download.ph...
- 下载 64-bit 安装包,双击运行。
- 安装类型选择 Custom ,仅勾选 TightVNC Server,然后一路 Next。
2. 设置访问密码
安装最后一步会提示设置 VNC 密码,请牢记,后续远程连接需使用。
3. 启动服务
-
图形方式 :系统托盘出现 "V" 图标,右键 → Start TightVNC Server。
-
命令方式(管理员 CMD):
sql"%ProgramFiles%\TightVNC\tvnserver.exe" -start
默认使用端口 5900 (桌面号
:0),可在 Configuration 中修改为固定端口,并勾选 "Start server on Windows startup" 实现开机自启。
4. 配置防火墙
- 打开 Windows Defender 防火墙 → 允许应用通过防火墙。
- 勾选 TightVNC Server 的专用和公用网络访问权限。
- 若修改了默认端口,需手动放行对应 TCP 端口。
三、Windows 关闭 Ctrl + Alt + Del 登录提示
操作步骤(管理员权限):
bash
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v DisableCAD /t REG_DWORD /d 1 /f
设置值为
1表示禁用 Ctrl + Alt + Del,重启后生效。
四、在 Guacamole 里添加 VNC 连接(Windows 桌面)
前提:
① 已完成上文 "一、安装 Guacamole" ;
② 已完成 "二、安装 TightVNC Server" 并确认 IP:5900 能在局域网用 VNC-Viewer 正常连接。
1. 登录 Guacamole 管理界面
浏览器访问 http://<Guacamole-IP>:8080/guacamole
默认账号 guacadmin / guacadmin
2. 创建新连接(Connections → New Connection)
| 字段 | 填写值 | 备注 |
|---|---|---|
| Name | Win10-VNC |
任意英文名 |
| Protocol | VNC | 下拉选择 |
| Hostname | 192.168.x.x |
Windows 主机 IP |
| Port | 5900 |
与 TightVNC 监听端口一致 |
| Password | (刚才设置的 VNC 密码) | 明文保存,Guacamole 会自动提交 |
| Color depth | 按需选 24/32 位 | 默认即可 |
| Cursor | Remote | 本地光标更流畅 |
其余保持默认,Save 即可。
3. 授权给用户
同一页面切到 Permissions → 把 guacadmin (或新建用户)拖到 "Current users" → Update。
4. 立即访问
回到 Home → 点击刚创建的 Win10-VNC 卡片 → 秒进 Windows 桌面。
五、常见扩展场景速配
| 场景 | 需改协议 | 关键参数 | 额外说明 |
|---|---|---|---|
| Windows RDP | Protocol=RDP | Hostname、Port=3389、Username、Password、Security=NLA | 目标机需开远程桌面、防火墙放行 3389 |
| Linux SSH | Protocol=SSH | Hostname、Port=22、Username、Private-key 或 Password | 私钥可粘贴到 Private key 文本框 |
| Linux VNC | Protocol=VNC | 同上第四节 | 常见端口 5901(桌面:1) |
| 文件传输 | RDP 协议下自动可用 | 在 Settings 里启 Drive 映射 | 会在远程 *\TSCLIENT* 看到宿主机目录 |
| 多用户/LDAP | 需改 guacamole.properties |
官方镜像支持 LDAP、CAS、OpenID 等扩展 | 挂载新配置文件后重启容器即可 |
六、一键备份 & 升级建议
-
数据库备份
bashdocker exec guacamoledb mysqldump -uroot -prootpass guacdb > guac_backup.sql -
升级镜像
bashdocker pull guacamole/guacamole docker stop guacamole && docker rm guacamole # 用同一命令重新 run(第四节步骤 3)即可,数据在库内无损
七、排障 3 秒表
| 现象 | 90% 原因 | 秒解 |
|---|---|---|
| 黑屏/连不上 VNC | Windows 防火墙没放行 5900 | 防火墙加规则 |
| Guacamole 报 "Connection closed" | VNC 密码填错 / 端口错 | 重新编辑连接 |
| RDP 报 "NLA failed" | 账号或密码错 / 目标机未开远程 | 检查账号、开远程、关 NLA 可选 |
| 页面 404 | 地址没加 /guacamole |
补全路径 |
至此, "Guacamole 安装 → VNC 接入 → RDP/SSH 扩展 → 备份排障" 全流程闭环完成。