Skip to content

RustDesk

3.6/5综合评分
4.0/5推荐度
GitHub ↗work-tools/remote-accessRustAGPL-3.0★ 119,914核验 2026-08-09

证据等级:Authenticated GitHub API + official RustDesk documentation + GitHub Global Advisory/NVD + local shallow partial-clone static scan at 11190fa. No local cargo/Flutter/Docker build, client installation, screen capture, relay/hole-punch, remote-control, file-transfer, plugin, self-hosted server, release-signature, benchmark, or CVE PoC test; libs/hbb_common submodule was not initialized, so its cryptographic/transport implementation was not audited.

开始阅读
维度评分RustDesk:能力 4.0/5,易用性 4.0/5,性能 3.0/5,代码质量 3.0/5,文档 4.0/5,社区 4.0/5,成熟度 4.0/5,可扩展性 3.0/5,安全性 3.0/5,推荐度 4.0/5维度评分能力易用性性能代码质量文档社区成熟度可扩展性安全性推荐度

RustDesk ​

一个以 Rust 为核心、Flutter 为主 GUI 的跨平台远程桌面客户端:可走直连或 relay,也可配合独立的 rustdesk-server 自托管 rendezvous/relay;功能面成熟,但它是高权限软件,安全性取决于端点授权、服务器配置和运维纪律。

状态: active · 总分: 3.6/5 · 推荐度: 4/5

验证边界:本轮核验了官方资料、GitHub 元数据/活动、仓库静态结构与近期 Actions;未实际安装或远控任何设备,未运行客户端、server、插件、Docker、编译/测试、基准或 release artifact verification,libs/hbb_common 子模块亦未初始化。

一句话总结 ​

RustDesk 值得作为个人、家庭或受控团队的开源远程桌面候选,尤其当你希望掌握 rendezvous/relay 所在的 server 与 client 配置;但“自托管”不是只安装本仓库客户端,高权限能力和独立 server 的网络边界必须先按生产系统处理。

总体评价 ​

此仓库的主体是 endpoint client,而不是完整的自托管控制平面。它包含 Rust networking/service core、Flutter desktop/mobile UI、屏幕捕获、输入、剪贴板、音频、文件传输等平台接入;rendezvous_mediator 的源码可见 UDP/TCP rendezvous、NAT 与 relay 分流,src/server.rs 则把本机 audio/display/clipboard/input/video services 组合为会话服务。[GH][Local:architecture]

自托管能力属于 RustDesk 产品组合,但落实到另一个 rustdesk/rustdesk-server 仓库的 hbbs(ID/rendezvous)与 hbbr(relay)。因此本条目不能把 server 的 Docker、Web Console、SSO/2FA 或审计特性一概算作本 client repo 已验证功能。[GH:server][Docs:selfhost]

作为 client,项目已有稳定的非 prerelease 1.4.9、Windows/Linux/macOS/Android/Flatpak 的上传 asset,release 页面另列 iOS App Store 与 web 入口,以及 F-Droid/Flathub 路径、活跃合并节奏与多平台 release workflow。[GH][GH:releases][GH:activity][Local:quality] 作为安全敏感的远控软件,它仍不应仅凭 Rust、星数或 repository-advisories API 的空结果获得高分:GitHub Global Advisory/NVD 另有一个影响 <1.4.9 的 session-scope authorization CVE;安全使用仍取决于 endpoint 权限、版本基线、密码/审批、server key、更新供应链、反向代理与网络暴露。[GH:advisories][GH:global-advisory][Docs:advanced][Docs:selfhost]

推荐度:4/5 ​

适合被认真试用,但先固定并验证不低于 1.4.9 的 client,再在你的目标 OS、显示协议、网络路径与 server 策略上做 smoke test。 给 4 的依据是功能域、稳定 release、广覆盖的发行矩阵、可见的工程/社区活动和自托管选择已经具备。[GH:releases][GH:activity][Local:quality][GH:global-advisory]

扣分点不是“开源工具不可信”,而是边界本身:本项目可控制输入、读取屏幕、传输文件与剪贴板、开启终端/tunnel/重启等高影响能力;server 是另一个需部署和加固的仓库;本轮也没有验证加密实现、端点行为或抗故障表现。[Docs:advanced][GH:server][Local:architecture]

优势 ​

  1. 核心远控能力宽且跨平台:稳定 1.4.9 提供 Windows/Linux/macOS/Android/Flatpak assets,release 页面另列 iOS App Store 与 web 入口;Android 文档明确覆盖远控、文件传输、屏幕/文件分享及权限流。[GH:releases][Docs:client]
  2. 连接路径并非单一中转依赖:源码同时呈现 UDP/TCP rendezvous、直连尝试、NAT handling 与 relay fallback;官方也提供独立 OSS server 自托管路径。[Local:architecture][GH:server]
  3. 端点权限有细粒度配置面:官方 advanced settings 将键鼠、剪贴板、文件、camera、terminal、tunnel、remote restart、recording、privacy mode、direct IP 与 whitelist 分为独立开关。[Docs:advanced]
  4. 发布与工程自动化有实证:稳定 1.4.9 的 26 个 asset 都带 GitHub digest 字段;release workflow 覆盖多 OS/architecture,并生成 CycloneDX SBOM;最近一次 master push 的 CI 和 Full Flutter CI 都成功完成。[GH:releases][Local:quality][GH:ci]
  5. 项目活跃而非只剩历史可见度:最近 90 天有 166 个 merged PR、165 个 closed issues,抽样 100 个 merged PR 的创建至关闭中位数为 19.17 小时;这些是 activity evidence,不替代生产稳定性证明。[GH:activity]
  6. 存在受限扩展面:本地代码存在 desktop Flutter 的 plugin framework、安装/加载/UI/session callback 接口;集中 custom-client policy/Web Console 属于另行核验的控制面,本文不以它支撑本 client repo 的扩展性评分。[Local:plugins][Docs:advanced]

劣势 ​

  1. client/server/pro 产品边界容易被宣传语掩盖:本仓库不是 hbbs/hbbr server;OSS server、Pro Web Console 和本地 client 的功能/责任不同,部署设计必须拆开验证。[GH:server][Docs:selfhost][Docs:advanced]
  2. 远控的默认能力面很大:custom-client 文档中多种 incoming permissions 默认可开启,包括 keyboard、clipboard、file transfer、terminal、tunnel、restart、recording 等;是否适合你的风险模型取决于显式 policy,而非默认“能连上”。[Docs:advanced]
  3. Linux feature parity 有边界:Wayland 支持仍标为 experimental,login-screen remote access 仍需要 X11;不能仅凭有 Linux package 就承诺所有桌面流程可用。[Docs:linux]
  4. 性能缺乏本轮决策级实测:源码/CI 显示 hwcodec、vram、DRM、adaptive/codec settings 等设计方向,但没有获得官方 CPU/RAM/latency benchmark,也未在目标硬件实际测量。[Local:architecture][Docs:advanced]
  5. 构建与审计面复杂:Rust + Flutter + platform native dependencies + vcpkg + 多个 Git dependencies/submodule 的组合远非轻量 cargo run;本轮 partial clone 未含 hbb_common,更不能宣称已审计端到端加密或全部 transport 实现。[Local:architecture][Local:quality]
  6. 许可证与商业集成需另行核对:此仓库为 AGPL-3.0;修改版若经网络与用户交互,尤其应自行评估 AGPL 第 13 条及其他适用义务,修改、再分发或嵌入其他服务前也应完成合规审查。本文不提供法律意见。[GH:license]

适合什么场景 ​

  • 个人/家庭多设备远程协助,且愿意在目标 Windows、macOS、Linux、Android 组合上先测 capture、input、file transfer 和唤醒/重连路径。
  • 希望使用开源 client,并愿意另行部署、更新、备份与防火墙隔离 rustdesk-server 的小团队或实验室。
  • 需要直接控制是否走公共 server 或自己的 rendezvous/relay,且可管理 server key、客户端配置和端点授权的使用者。
  • 学习 Rust async networking、NAT traversal/relay fallback、跨平台 screen/input/audio service,以及 Rust–Flutter bridge 的真实工程案例。[Local:architecture]
  • 对 remote access policy 做实践:把 terminal、tunnel、clipboard、file transfer 等按角色关闭,而不是把全功能当作统一权限。[Docs:advanced]

不适合什么场景 ​

  • 无法承担独立 server 的端口、TLS、upgrade、密钥、日志、备份和 incident response 的团队;“自托管”并不自动降低风险。[Docs:selfhost][GH:server]
  • 把远控 client 装在高价值端点、但不愿做最小权限、强认证、更新验证与审核记录的环境。
  • 强制要求 Linux Wayland 登录界面远控、又不能接受 X11 回退或实验性限制的部署。[Docs:linux]
  • 需要经过独立密码学/渗透测试、明确支持生命周期、强制 RBAC/SSO/audit 的合规场景;这类保证必须按所选 server/control-plane edition 与组织流程独立核验,不能由本 repo 的 client 静态扫描替代。[Docs:advanced][GH:server]
  • 不能接受 AGPL-3.0 义务、或需要就许可证作正式商业判断的产品集成。

与类似项目对比 ​

项目定位相对本项目
MeshCentralWeb-based remote monitoring/management site,安装 agent 后远程管理设备MeshCentral 的中心对象是 browser-administered RMM/control plane;RustDesk 的此仓库中心对象是 native/mobile endpoint client,server 则另在 rustdesk-server。
Remotely.NET/Blazor/SignalR 的 remote control 与 remote scripting server/client solutionRemotely 将 central server、device/organization 和 scripting 放在同一套方案;RustDesk 以 client + 独立 rendezvous/relay server 组合为主。
Apache Guacamole浏览器中访问既有 RDP/VNC/SSH 的 HTML5 web gateway/clientGuacamole 主要聚合现存的远程协议服务;RustDesk 管理自己的 endpoint client、ID/rendezvous 与 relay 协作路径。

上表是架构/定位比较,未对比较对象进行同深度的 10 维评分,也不主张任何一者在性能、安全、成本或成熟度上必然优于另一者。[GH:meshcentral][GH:remotely][GH:guacamole]


它能做什么 ​

评分 4/5。这里的 4 表示核心远控场景和交付平台覆盖广,不表示每个 OS、显示协议、server edition 或权限组合都经过本轮实测。

  • 建立 remote desktop session:本地源码提供 display/video、audio、clipboard、input 等服务;rendezvous mediator 依网络/代理/NAT 条件走 UDP/TCP 与 direct/relay paths。[Local:architecture]
  • 在授权后远程键鼠控制、clipboard、文件传输、camera、terminal、TCP tunneling、remote restart、session recording、privacy mode 与 block input;每项应由 receiving endpoint policy 单独允许或关闭。[Docs:advanced]
  • Android 端发起远控、双端文件传输,以及在用户授予 Screen Capture/Input/File/Audio 权限后分享自己的屏幕/文件。[Docs:client]
  • 通过 ID/relay server 和 public key 配置接入自定义 server;官网把 client configuration 与 Server OSS/Pro 文档分开维护。[Docs:client][Docs:selfhost]
  • 交付稳定版和 nightly:1.4.9 的 26 个 uploaded assets 覆盖 Windows、Linux、macOS、Android 与 Flatpak;release page 另列 iOS App Store 与 web 入口,并提供 AppImage、RPM、Arch/SUSE 等 Linux 包。[GH:releases][Docs:linux]
  • 提供有限的 desktop plugin framework;advanced settings 文档还描述客户端会承载的 permission/config keys,但集中 custom-client 生成、下发与策略管理的 edition/repo 边界未由本 client repo 验证。[Local:plugins][Docs:advanced]

不给 5,是因为 Linux Wayland/login-screen 等平台限制仍存在,self-host 有独立 server/网络前提,插件与复杂权限组合亦未进行运行验证。[Docs:linux][GH:server][Local:plugins]

运行环境与资源占用 ​

场景CPU内存存储说明
普通 client 使用未核验官方基线;受 capture/codec/分辨率/FPS 影响未核验官方基线1.4.9 asset 为 11,951,472–107,073,739 bytes,配置与日志另计目标设备须实际测试,不把 Rust 语言标签当作资源测量。[GH:releases]
高分辨率、多显示器或硬件编码可能受视频 capture/encode/decode 和 GPU driver 影响随显示缓存与会话行为变化录制文件、transfers 与 logs 可显著增长源码/setting 中存在 hwcodec、vram、DRM 和 codec controls,但本轮无 benchmark。[Local:architecture][Docs:advanced]
自托管服务端不属于本 repo 的 client runtime不属于本 repo 的 client runtimehbbs/hbbr state、logs、Docker volumes 另计必须单独评估 rustdesk-server、公开端口与 network topology。[GH:server][Docs:selfhost]
从源码构建多核 CPU、Rust 1.75、Flutter、C/C++ build env 与 vcpkg 参与build/link 阶段需另测target、vcpkg/cache 可远大于本轮 23.4 MB partial checkoutrelease workflow 的多平台编译链说明其工程成本,不代表安装版日常消耗。[Local:architecture][Local:quality]
  • 运行时:native/mobile endpoint client;Rust core 与 Flutter UI 协作,包含平台相关 capture/input/audio/clipboard 代码。[Local:architecture]
  • 操作系统:1.4.9 uploaded assets 覆盖 Windows、Linux、macOS、Android 与 Flatpak;release 页面另列 iOS App Store 和 web 入口。Linux Wayland 与 login-screen 有明确限制。[GH:releases][Docs:linux]
  • Docker:docker_support: false 对应此 client repo:根 Dockerfile 是 build route,不能替代 endpoint desktop runtime;官网 Docker 文档服务的是独立 rustdesk-server。[GH][Docs:selfhost][GH:server]
  • GPU:不要求;硬件 codec/VRAM 是可选性能路径,实际可用性依 OS、driver 和设备能力。[Local:architecture]
  • 外部依赖:自托管至少额外涉及 hbbs/hbbr、端口/防火墙和 client server-key 配置;source build 还涉及 Flutter、vcpkg 与原生依赖。[Docs:selfhost][Docs:client][Local:quality]

performance 评分 3/5:有 codec、NAT/relay fallback 与平台优化的工程信号,但无本轮 latency、bitrate、CPU、memory 或大规模 session 测试。性能潜力不替代 SLA 证据。

上手体验 ​

评分 4/5。普通 client 的可达性较好:稳定 release 提供多 OS/architecture assets,Linux 文档列出 native packages、AppImage 与 Flatpak,Android 文档直接说明连接、文件传输与 server-key 配置路径。[GH:releases][Docs:linux][Docs:client]

扣分来自两层现实复杂度。第一,本文没有实际启动 endpoint 或完成第一次 remote session,因而不把 README 的 “out of the box” 当作本机验证;第二,self-host 需要切换到独立 server 的部署、端口和 reverse-proxy 文档,不能把下载 client 等同于完成控制平面。[GH][Docs:selfhost][GH:server]

开发者上手还更重:根 README 的 Sciter build tutorial 已标为 deprecated,而实际 Flutter release workflow 涉及 pinned Flutter/Rust versions、vcpkg、OS-specific packages、submodules 与 signing/packaging 分支。故“安装使用”可给 4,“从零改造/自建 release pipeline”则明显更难。[GH][Local:quality]

代码质量 ​

评分 3/5。静态结构显示 Rust core 与 Flutter GUI 有明确接缝:Cargo 声明 cdylib/staticlib/rlib,workspace 分出 capture/common/input/clipboard/virtual display/portable/printer,平台服务位于 src/server,连接发现与 relay 逻辑在 src/rendezvous_mediator.rs。但这些边界没有消除关键控制器的集中性:src/server/connection.rs 7,524 行、src/client.rs 4,359 行、src/flutter_ffi.rs 3,180 行,而 Dart model.dart 4,308 行;跨 Rust/Dart/native/生成 bridge 的修改协调成本高。[Local:architecture][Local:quality]

测试/CI 不只是 badge:本轮扫描到 209 个 Rust test attributes、七个 Flutter test files;CI workflow 会在 Linux x86_64 上以 locked dependencies build + test,Flutter workflow 则实际编译多个 desktop/mobile target,并有一个最近 master push 成功记录。不过 Rust fmt/clippy/minimum-Rust jobs 被注释,未找到 active Flutter test/analyze、coverage 或 fuzz gate;跨平台 evidence 主要还是 release build,而不是该目标的 test gate。[Local:quality][GH:ci]

因此止于 3 而非 4:没有 coverage 数据,未本地运行 test;标准 CI 的 test matrix 主要是 Linux x86_64,跨平台 workflow 的主要证据是 build/release;952 tracked files 之外还有未初始化的 hbb_common 子模块和 Git dependencies,重要 transport/crypto implementation 未被这次 scan 覆盖。多语言、系统权限与多 OS 组合也使回归面天然较大。[Local:quality][Local:architecture]

可扩展性 ​

评分 3/5。项目存在实际的扩展触点:desktop Flutter feature-gate 下的 plugin module 可 URL/local install、load/reload/unload,并向 UI 与 connection lifecycle 发 callback。advanced settings 中的四级优先级属于 external Web Console/custom-client control plane 的产品级能力,不作为本 client repo 单独提供的扩展性证据。[Local:plugins][Docs:advanced]

但这还不足以给 4 或 5。此轮没有找到并运行 versioned public plugin SDK、兼容性契约、权限隔离/approval model 或 sample plugin;源码可见 Rust FFI/raw pointer surface,而非一个已经验证安全隔离的通用 extension sandbox。深度改变 protocol、transport、capture backend 或 server behavior,预期仍需要 fork、重编译并维护跨平台差异。[Local:plugins][Local:architecture]

因而 3 分表示“有可用扩展面与定制通道”,不是“插件生态、API stability 与 third-party trust 已被证实”。

文档质量 ​

评分 4/5。官方资料不是单一 README:client、Linux/Android、self-host server OSS、Docker、custom-client configuration、advanced settings 与 development build 都有独立页面;advanced settings 尤其把 high-privilege 开关、默认值和部分版本差异写得较细。[Docs:client][Docs:linux][Docs:advanced][Docs:selfhost]

文档也会主动说明限制:Wayland experimental、login screen 依 X11、ID whitelist 不是 authentication、TLS fallback 默认关闭、server WebSocket 端口的 reverse-proxy boundary 等,这些比无条件 feature marketing 更有用。[Docs:linux][Docs:advanced][Docs:selfhost]

扣分在信息分散和产品分层:client repo、OSS server、Pro Web Console、nightly/stable build 的资料跨多处;根 README 仍保留 deprecated Sciter build 教程,而 release workflow 已展示 Flutter 为主要 GUI 路径。实际部署应固定版本后再对照对应文档,不应将不同 edition 的段落混用。[GH][Docs:selfhost][Local:quality]

社区与成熟度 ​

维度评分说明
社区活跃度4/52026-08-09 snapshot 为 119,914 stars、18,350 forks、620 watchers,且最近 90 天有 166 merged PR、165 closed issues;抽样 100 个合并 PR 的创建至关闭中位数为 19.17 小时。星数只说明可见度,评分主要看近期整合活动;未把这些数字外推为全部 support/SLA 或插件生态质量。[GH:api][GH:activity]
成熟度4/5项目创建于 2020,API 查询到 39 个 release;最新 stable 1.4.9 于 2026-07-06 发布,另有 nightly,且 stable assets 覆盖主要 desktop/Android/Flatpak 路线,release 页面另列 iOS/web 入口。不给 5:没有在本轮核验到正式 LTS/兼容承诺、生产采用统计或无破坏性变更保证,self-host server 与 Pro feature 边界也要分别评估。[GH:api][GH:releases][GH:server]

社区活跃度与成熟度各为 4 并非“已无风险”。前者是 issue/PR 的公开活动快照,后者是稳定版/年龄/发行面信号;二者均不等价于端点安全、企业支持或你所在网络中的可用性。

安全与风险 ​

评分 3/5。

正面信号有其分量,但须各归其位:本仓库有 responsible-disclosure 渠道;Dependabot 每日追踪 Git submodule;release workflow 会生成 CycloneDX SBOM;稳定 release assets 在 GitHub API 中附有 digest;repository-advisories API 本次返回空数组。但这不与 GitHub Global Advisory/NVD 的 CVE-2026-57850 矛盾:前者是 repo-published advisory 检查,后者是全局数据库的外部记录,且页面标注的 CVSS 来自 VulnCheck 而非 NVD 自行 enrichment。[Local:security][Local:quality][GH:releases][GH:advisories][GH:global-advisory]

本地静态阅读能确认一个 secure=true 的 session path 使用 signed public-key material 与 sodiumoxide box key-pair 建立 stream key;但该调用链也接收 secure 开关,不能由此推定所有连接都进入这一路径。再者,hbb_common 是未初始化子模块,且本轮没有执行握手、抓包、验证 key pinning 或审查整个 cryptographic/relay implementation。故这些只能是设计/代码路径信号,不构成所有会话已加密、独立 E2EE 或密码学审计结论。[Local:architecture]

主要风险是权限与部署边界:

  1. 远程桌面天然可见屏幕、注入键鼠、读取 clipboard/文件,并可按 policy 开放 terminal、TCP tunnel、restart、recording、camera、privacy mode 或 block input;对高价值端点应逐项禁用未需要的能力。[Docs:advanced]
  2. custom-client documentation 中的 many capability switches 有可开启默认值;access-mode=custom 不等于每个高影响 service 自动最小化。对实际安装版、版本/edition 仍应验证 UI 和 policy 的生效状态。[Docs:advanced]
  3. rustdesk-server 是独立 attack surface。官方 OSS Docker 文档明确警告:若 WebSocket ports 21118/21119 可被直接访问,未验证的 forwarded-IP headers 可伪造 IP、绕过 IP-based rate limiting/blocking 并污染 logs;应只让受控 reverse proxy 连接,或关闭这两个端口。[Docs:selfhost]
  4. direct-IP access 默认文档值为关闭、insecure TLS fallback 默认也为关闭;应保持这些保守值,除非有明确网络/证书需求和可回退测试。[Docs:advanced]
  5. GitHub Global Advisory/NVD 的 CVE-2026-57850 / GHSA-83jc-7j6x-wvj9 描述 <1.4.9 缺少 server-side session-scope enforcement:已认证但只获 FileTransfer/PortForward/ViewCamera/Terminal 范围的 peer 可越出获授范围发出 remote-control 相关消息。维护者的 PR #15469 于 2026-07-05 合并,commit message 与 release 1.4.9 changelog 都将它标为 scope-permission fix;因此生产 client 的最低版本基线应为 >=1.4.9。本轮没有运行 PoC、确认已部署 binary 版本,或独立复现修复;NVD 的 8.7 CVSS v4 是 VulnCheck 供给,不能当作 NVD 独立评定。[GH:global-advisory][GH:releases]
  6. repository-advisories API 的空结果不等于没有其他 CVE、供应链问题、server misconfiguration、弱密码、恶意 plugin 或端点社会工程风险;本轮未执行 OSV/RustSec、SBOM vulnerability 或 binary-signature verification。[GH:advisories][GH:global-advisory][Local:security]

部署建议:固定并验证 client >=1.4.9,不要使用漂移 nightly;特别在升级验收中测试受限 FileTransfer/PortForward/ViewCamera/Terminal 会话不能获得键鼠、截图或其他 Remote 范围能力。再比对官方下载页/API 展示的 asset digest,并另行核验适用平台的代码签名与发布者身份;digest 是完整性信号,不替代身份/签名链或供应链证明。本轮没有做签名验证。为每个 endpoint 关闭 terminal、tunnel、clipboard、file transfer、camera、remote config 与 direct-IP 中不需要者;采用强认证/审批/短期密码与最小 allowlist;自托管时固定 server key,限制 server 管理面与 WebSocket ports 的网络来源,维护更新/备份/日志,并在上线前用隔离设备演练拒绝、撤销、恢复和 upgrade rollback。[GH:global-advisory][GH:releases][Docs:advanced][Docs:selfhost]

学习价值 ​

RustDesk 很适合作为“高权限跨平台客户端”学习材料:可从 Rust–Flutter bridge、screen/input/audio/clipboard service 拆分,一直追到 rendezvous、TCP/UDP、NAT、direct/relay fallback、service lifecycle、hardware codec feature-gates 和多 OS release pipeline。[Local:architecture][Local:quality]

更重要的学习点是工程边界,而非只看语言选择:client 与 server 是独立责任域;高权限 feature 需要 policy matrix;CI build 成功与安全审计不是一回事;部署文档中一个 forwarded-header 细节即可改变 rate-limit/logging 的可信度。此类项目提醒我们:能远控,不等于应放权;能自托管,不等于免运维。[Docs:advanced][Docs:selfhost]