RustDesk 现在支持在 Wayland 上真正的无人值守远程访问

RustDesk 新增在 Linux Wayland 桌面上提供无人值守远程访问的能力,因其作为 TeamViewer、AnyDesk、VNC 和 RDP 等工具的快速、开源替代方案而受到欢迎,尤其适合自托管场景和技术支持。评论者认为它性能不错、易于使用,但也对密码策略、加密设计、直接 LAN 连接不加密,以及项目中一些闭源或无许可组件提出了担忧。该功能还凸显了 Wayland 生态持续存在的摩擦:像完整远程控制这样的基础能力,仍然需要底层 DRM/KMS 变通方案和与 compositor 相关的扩展。

总体情绪

  • 许多人对 RustDesk 作为 TeamViewer/AnyDesk 替代品感到兴奋,认为它“开箱即用”、可自托管,并且避免了账号/锁定。
  • 也有人因为安全性疑虑、某些系统上的高资源占用,以及 Wayland/实现方面的顾虑而持谨慎或负面态度。

使用场景与对比

  • 主要吸引点:对 Linux 桌面(包括 Wayland)的无人值守远程访问、技术支持,以及通用远程图形界面使用。
  • 几位评论者指出,你已经可以用 VNC、Xpra、RDP、通过 SSH 的 Remmina,或者单纯 SSH 来做类似的事;RustDesk 被看作另一种选择,而不是根本性的创新。
  • 与 VNC 相比:
    • 宣称的优势:通过视频编解码器获得更好的性能、多显示器支持、更容易穿透 NAT(无需端口转发/VPN)。
    • 反例:一些人报告 CPU 占用极高,实际中更偏好 TightVNC 或 TigerVNC。
  • 与 Sunshine/Moonlight 和 Steam Link 相比:
    • RustDesk 被认为在局域网外更容易用、也没那么“别扭”,但 Sunshine 被提及为在 Wayland/DRM 捕获方面很强的技术参考。

Wayland 与技术实现

  • 新功能:在 Wayland 上实现真正的无人值守访问,解决了 OBS 等工具也长期存在的痛点。
  • 很可能使用带特权的守护进程,结合 DRM/KMS 帧缓冲捕获和类似 uinput 的输入注入,方式与 Sunshine 类似。
  • 一个依赖项(libdrmtap)只提供屏幕捕获;输入仍然依赖具体 compositor,因此完整、通用的 Wayland 支持仍然很混乱。
  • 有人批评 Wayland 的设计让基本的远程桌面场景比 X11 或历史上的 Windows(RDP/Terminal Services)困难得多。

安全、密码与加密

  • 密码策略:
    • 有些人希望使用短语式(XKCD 风格)密码,并不喜欢 RustDesk 的复杂度规则。
    • 也有人认为,基于常见词的短短口令在使用快速哈希(MD5/SHA-256)存储时,很容易被消费级 GPU 破解。
    • 反方强调熵的数学、在线猜测的速率限制,以及更长口令短语的优势;有人建议使用 Argon2 这类 KDF 会比 SHA-256 更好。
  • 一位评论者查看了 RustDesk 的代码,声称它使用了一种自定义的、基于 SHA‑256 的挑战方案,文档不清晰,并可能存在中间人攻击风险,因此建议不要使用该软件。
  • 加密:
    • 通过服务器(包括自托管服务器)的普通 RustDesk 会话据称使用基于 NaCl 的 box 实现端到端加密。
    • 直接 IP 的“局域网”连接不加密,默认关闭,并且官方将其视为测试功能;维护者建议改用 VPN(WireGuard/Tailscale)。
    • 有些人认为内置的直接连接加密缺失是严重遗漏;也有人认为 LAN + VPN 已经足够。

开源状态与生态

  • RustDesk 的宣传是包括服务器在内的开源。
  • 批评者指出:
    • 一个必需的、没有许可证的子模块,以及用于某些功能的闭源 DLL,使其处于开源与 source-available 之间的灰色地带。
  • 还提到了一个替代服务器实现 BetterDesk:
    • 使用单个 Go 二进制文件,另有可选的 Node.js/Postgres Web UI(默认 SQLite)。
    • 有些人喜欢这种架构;另一些人则批评其看起来过于臃肿,以及项目有明显的 AI 生成感。

缺失功能与细节问题

  • 期待的功能:
    • 自托管 Web 客户端。
    • 麦克风输入透传(目前不可用;有用户依赖单独的硬件 KVM 类设备作为变通方案)。
    • 有人询问对完全无头机器的明确支持,但没有得到回答。
  • 一些小吐槽:
    • 菜单/通知的 CSS 问题。
    • 对“自托管时已加密”与直接 IP 模式之间的混淆。
    • 对维护者在局域网加密问题上的“我们不打算实现这个,但欢迎 PR”立场褒贬不一。

网络与“零信任”讨论

  • 一些用户会把 RustDesk 与 Tailscale 或 WireGuard 搭配使用,以获得加密、访问控制,并避免把服务暴露到公网。
  • 另一些人认为远程桌面工具应该原生支持安全传输(例如带正确认证或 TOFU 的 TLS/QUIC),而不应依赖 VPN。
  • 还提到了更广泛的想法:OIDC/WebAuthn、基于 SSH 密钥的客户端认证、IPv6 + 动态 DNS、基于 DHT 的地址发现(iroh/pkarr),以及用于自托管服务的零信任前端(Envoy、Authelia)。