四瓣纸鹤 2026-02-04 23:53 采纳率: 0%
浏览 3

[CentOS Stream 10] Guacamole 1.6.0 RDP连接失败

大家好,我在 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.



  • 写回答

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 配置等)可能导致连接失败。


    🔍 可能原因

    1. NLA 安全模式不兼容
      某些 RDP 服务器可能不支持 NLA 或需要特定配置。

    2. 网络或防火墙限制
      RDP 服务可能被防火墙阻止,或者中间设备(如路由器、负载均衡器)限制了连接。

    3. FreeRDP 版本问题
      Guacamole 依赖 FreeRDP 库,旧版本可能存在兼容性问题。

    4. 用户权限或认证配置问题
      虽然你使用的是 user-mapping.xml 认证,但可能存在权限不足或凭证无效的问题。

    5. RDP 服务器配置问题
      RDP 服务器(如 Windows Server)的远程桌面设置可能有误,比如未启用远程连接、未允许 NLA 等。


    🛠️ 解决方案

    1. 修改 Guacamole 的 RDP 安全模式为 RDGSSL

    将安全模式从 NLA 改为 SSLRDG,以绕过 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。尝试 sslrdg

    • 保存并重启 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-modesslrdg | | 网络/防火墙限制 | 开放 RDP 端口(3389)并检查防火墙规则 | | FreeRDP 版本不兼容 | 升级 FreeRDP 到最新版本 | | 用户权限或认证问题 | 检查 user-mapping.xml 和 RDP 服务器的用户权限 | | 日志信息不足 | 启用 DEBUG 日志进一步排查 |


    💡 建议

    如果你使用的是 Windows RDP 服务器,建议 不要禁用 NLA,而是确保其配置正确。如果你仍然无法解决,可以尝试使用 VNC 作为替代方案,或者使用 SSH + X11 转发 来连接 Linux 服务器。


    如有更多日志片段或配置文件内容,欢迎继续提供,我可以帮助你进一步诊断!

    评论

报告相同问题?

问题事件

  • 创建了问题 2月4日