大家好,我在 CentOS Stream 10 上编译安装 Guacamole 1.6.0,遇到了 RDP 连接问题。
我使用的是user-mapping.xml认证,照官网配了一个简单的。
现在是能登录,能显示连接中,随后断开连接。
查看guacd日志,发现直接断开,没有其他错误日志。
跪求各路大佬解惑!
详细日志如下
guacd[41173]: INFO: Creating new client for protocol "rdp"
guacd[41173]: INFO: Connection ID is "$9e7d1a4c-0eee-4189-8340-eeb85d86dd7a"
guacd[41184]: DEBUG: Processing instruction: size
guacd[41184]: DEBUG: Processing instruction: audio
guacd[41184]: DEBUG: Processing instruction: video
guacd[41184]: DEBUG: Processing instruction: image
guacd[41184]: DEBUG: Processing instruction: timezone
guacd[41184]: DEBUG: Processing instruction: name
guacd[41184]: DEBUG: Parameter "console" omitted. Using default value of 0.
guacd[41184]: DEBUG: Parameter "console-audio" omitted. Using default value of 0.
guacd[41184]: DEBUG: Parameter "cert-tofu" omitted. Using default value of 0.
guacd[41184]: DEBUG: Parameter "disable-auth" omitted. Using default value of 0.
guacd[41184]: INFO: Security mode: NLA
guacd[41184]: DEBUG: Parameter "timeout" omitted. Using default value of 10.
guacd[41184]: DEBUG: User resolution is 1179x1161 at 96 DPI
guacd[41184]: DEBUG: Parameter "dpi" omitted. Using default value of 96.
guacd[41184]: DEBUG: Using resolution of 1176x1161 at 96 DPI
guacd[41184]: DEBUG: Parameter "force-lossless" omitted. Using default value of 0.
guacd[41184]: DEBUG: Parameter "read-only" omitted. Using default value of 0.
guacd[41184]: DEBUG: Parameter "client-name" omitted. Using default value of "Guacamole RDP".
guacd[41184]: DEBUG: Parameter "enable-wallpaper" omitted. Using default value of 0.
guacd[41184]: DEBUG: Parameter "enable-theming" omitted. Using default value of 0.
guacd[41184]: DEBUG: Parameter "enable-font-smoothing" omitted. Using default value of 0.
guacd[41184]: DEBUG: Parameter "enable-full-window-drag" omitted. Using default value of 0.
guacd[41184]: DEBUG: Parameter "enable-desktop-composition" omitted. Using default value of 0.
guacd[41184]: DEBUG: Parameter "enable-menu-animations" omitted. Using default value of 0.
guacd[41184]: DEBUG: Parameter "disable-offscreen-caching" omitted. Using default value of 0.
guacd[41184]: DEBUG: Parameter "disable-glyph-caching" omitted. Using default value of 0.
guacd[41184]: DEBUG: Glyph caching is currently universally disabled, regardless of the value of the "disable-glyph-caching" parameter, as glyph caching support is not considered stable by FreeRDP as of the FreeRDP 2.0.0 release. See: https://issues.apache.org/jira/browse/GUACAMOLE-1191
guacd[41184]: DEBUG: Parameter "disable-audio" omitted. Using default value of 0.
guacd[41184]: DEBUG: Parameter "printer-name" omitted. Using default value of "Guacamole Printer".
guacd[41184]: DEBUG: Parameter "enable-drive" omitted. Using default value of 0.
guacd[41184]: DEBUG: Parameter "drive-name" omitted. Using default value of "Guacamole Filesystem".
guacd[41184]: DEBUG: Parameter "drive-path" omitted. Using default value of "".
guacd[41184]: DEBUG: Parameter "create-drive-path" omitted. Using default value of 0.
guacd[41184]: DEBUG: Parameter "disable-download" omitted. Using default value of 0.
guacd[41184]: DEBUG: Parameter "disable-upload" omitted. Using default value of 0.
guacd[41184]: DEBUG: Parameter "timezone" omitted. Using default value of "Asia/Shanghai".
guacd[41184]: DEBUG: Parameter "recording-name" omitted. Using default value of "recording".
guacd[41184]: DEBUG: Parameter "recording-exclude-output" omitted. Using default value of 0.
guacd[41184]: DEBUG: Parameter "recording-exclude-mouse" omitted. Using default value of 0.
guacd[41184]: DEBUG: Parameter "recording-exclude-touch" omitted. Using default value of 0.
guacd[41184]: DEBUG: Parameter "recording-include-keys" omitted. Using default value of 0.
guacd[41184]: DEBUG: Parameter "create-recording-path" omitted. Using default value of 0.
guacd[41184]: DEBUG: Parameter "recording-write-existing" omitted. Using default value of 0.
guacd[41184]: INFO: Resize method: none
guacd[41184]: DEBUG: Parameter "enable-touch" omitted. Using default value of 0.
guacd[41184]: DEBUG: Parameter "enable-audio-input" omitted. Using default value of 0.
guacd[41184]: DEBUG: Parameter "gateway-port" omitted. Using default value of 443.
guacd[41184]: DEBUG: Parameter "disable-copy" omitted. Using default value of 0.
guacd[41184]: DEBUG: Parameter "disable-paste" omitted. Using default value of 0.
guacd[41184]: INFO: No clipboard line-ending normalization specified. Defaulting to preserving the format of all line endings.
guacd[41184]: DEBUG: Parameter "wol-send-packet" omitted. Using default value of 0.
guacd[41184]: INFO: Local system reports 1 processor(s) are available.
guacd[41184]: INFO: User "@d746b3d9-24d7-49c9-990b-e9f802f73587" joined connection "$9e7d1a4c-0eee-4189-8340-eeb85d86dd7a" (1 users now present)
guacd[41184]: DEBUG: Client is using protocol version "VERSION_1_5_0"
guacd[41184]: INFO: Graphical updates will be encoded using 1 worker thread(s).
guacd[41184]: INFO: Loading keymap "base"
guacd[41184]: INFO: Loading keymap "en-us-qwerty"
guacd[41184]: DEBUG: Local framebuffer format PIXEL_FORMAT_BGRX32
guacd[41184]: DEBUG: Remote framebuffer format PIXEL_FORMAT_RGB16
guacd[41184]: DEBUG: Support for CLIPRDR (clipboard redirection) registered. Awaiting channel connection.
guacd[41184]: DEBUG: Support for static channel "rdpdr" loaded.
guacd[41184]: DEBUG: Support for static channel "rdpsnd" loaded.
guacd[41184]: DEBUG: Failed to create OpenH264 decoder
guacd[41184]: DEBUG: Failed to create h264 codec context
guacd[41184]: DEBUG: SVC "rdpdr" disconnected.
guacd[41184]: DEBUG: SVC "rdpsnd" disconnected.
guacd[41184]: INFO: RDP server closed/refused connection: Disconnected.
guacd[41184]: INFO: User "@d746b3d9-24d7-49c9-990b-e9f802f73587" disconnected (0 users remain)
guacd[41184]: INFO: Last user of connection "$9e7d1a4c-0eee-4189-8340-eeb85d86dd7a" disconnected
guacd[41184]: DEBUG: Requesting termination of client...
guacd[41184]: DEBUG: Client terminated successfully.
guacd[41173]: INFO: Connection "$9e7d1a4c-0eee-4189-8340-eeb85d86dd7a" removed.
guacd[41173]: DEBUG: All child processes for connection "$9e7d1a4c-0eee-4189-8340-eeb85d86dd7a" have been terminated.
[CentOS Stream 10] Guacamole 1.6.0 RDP连接失败
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
檀越@新空间 2026-02-04 23:55关注晚上好🌙🌙🌙
本答案参考通义千问你遇到的问题是 Guacamole 1.6.0 在 CentOS Stream 10 上通过 RDP 连接时连接失败,尽管登录成功并显示“连接中”,但随后断开。根据你提供的日志信息,可以推测问题可能与 RDP 安全协议配置、网络策略、FreeRDP 兼容性或认证方式 有关。
✅ 问题分析
从日志中可以看出:
- Guacd 成功创建了 RDP 客户端。
- 日志中没有明显错误(如认证失败、无法连接等),只是在连接后直接断开。
- 关键信息是:
Security mode: NLA(Network Level Authentication)。
这表明 Guacamole 使用的是 NLA 安全模式进行 RDP 连接,而某些 Windows 系统默认使用 NLA,但在某些情况下(如防火墙、网络策略、Windows 配置等)可能导致连接失败。
🔍 可能原因
-
NLA 安全模式不兼容
某些 RDP 服务器可能不支持 NLA 或需要特定配置。 -
网络或防火墙限制
RDP 服务可能被防火墙阻止,或者中间设备(如路由器、负载均衡器)限制了连接。 -
FreeRDP 版本问题
Guacamole 依赖 FreeRDP 库,旧版本可能存在兼容性问题。 -
用户权限或认证配置问题
虽然你使用的是user-mapping.xml认证,但可能存在权限不足或凭证无效的问题。 -
RDP 服务器配置问题
RDP 服务器(如 Windows Server)的远程桌面设置可能有误,比如未启用远程连接、未允许 NLA 等。
🛠️ 解决方案
1. 修改 Guacamole 的 RDP 安全模式为
RDG或SSL将安全模式从 NLA 改为 SSL 或 RDG,以绕过 NLA 限制。
修改步骤如下:
-
打开
guacamole.properties文件:sudo vi /etc/guacamole/guacamole.properties -
添加以下内容(如果不存在):
guacd-hostname=localhost guacd-port=4822 rdp-security-mode=ssl
注意:
rdp-security-mode可选值包括:nla,ssl,rdg,any。尝试ssl或rdg。- 保存并重启 Guacamole 服务:
sudo systemctl restart guacd sudo systemctl restart tomcat # 根据你的部署方式
2. 检查 RDP 服务器的 NLA 设置
- 登录到 RDP 服务器(如 Windows Server)。
- 打开 系统属性 > 远程 > 允许远程连接到此计算机。
- 确保 “仅允许运行使用 Network Level Authentication(NLA)的远程连接” 是启用的。
- 如果你希望禁用 NLA,可以关闭该选项,但会降低安全性。
3. 确保 RDP 端口开放
- 检查 RDP 默认端口 3389 是否在防火墙中开放。
- 如果你在云环境中,还需检查安全组规则是否允许 RDP 流量。
sudo firewall-cmd --list-all- 如果未开放,添加规则:
sudo firewall-cmd --permanent --add-port=3389/tcp sudo firewall-cmd --reload
4. 更新 FreeRDP
Guacamole 依赖 FreeRDP 库,某些版本可能存在问题。你可以尝试升级 FreeRDP 到最新版。
# 安装 EPEL 仓库 sudo dnf install epel-release -y # 安装 FreeRDP sudo dnf install freerdp -y注意:如果你是从源码编译安装 Guacamole,请确认 FreeRDP 版本是否与 Guacamole 兼容。
5. 验证用户映射和凭据
- 检查
user-mapping.xml文件中的用户名、密码是否正确。 - 确保目标 RDP 服务器允许该用户远程登录。
- 尝试使用其他用户测试,排除权限问题。
6. 启用详细日志排查
-
修改
guacd的日志级别为 DEBUG,获取更详细的日志信息:编辑
/etc/guacamole/guacd.conf,添加:log-level = debug -
重启 guacd 服务:
sudo systemctl restart guacd -
查看完整日志,定位具体断开原因。
✅ 总结
| 问题 | 解决方案 | |------|----------| | NLA 安全模式导致连接失败 | 修改
guacamole.properties中的rdp-security-mode为ssl或rdg| | 网络/防火墙限制 | 开放 RDP 端口(3389)并检查防火墙规则 | | FreeRDP 版本不兼容 | 升级 FreeRDP 到最新版本 | | 用户权限或认证问题 | 检查user-mapping.xml和 RDP 服务器的用户权限 | | 日志信息不足 | 启用 DEBUG 日志进一步排查 |
💡 建议
如果你使用的是 Windows RDP 服务器,建议 不要禁用 NLA,而是确保其配置正确。如果你仍然无法解决,可以尝试使用 VNC 作为替代方案,或者使用 SSH + X11 转发 来连接 Linux 服务器。
如有更多日志片段或配置文件内容,欢迎继续提供,我可以帮助你进一步诊断!
解决 无用评论 打赏 举报