Works

RustDesk 官方版本的定制增强分支 v1.4.11,沿用上游 Rust + Flutter 双端架构,在完整保留上游开源能力的基础上,针对企业内部 Windows 批量部署与运维场景做了 9 项增强:跨会话文件复制粘贴、远程文件复制粘贴、剪贴板自动恢复、安装后自动启动并连接、卸载彻底清除配置、CM 窗口完全隐藏、静默提权安装、安装失败可诊断、服务操作竞态修复,并支持自建中继服务器私有部署。

RustDesk 自定义客户端

当前版本 客户端 v1.4.11(基于 RustDesk 官方开源版本的定制增强分支)
更新日期 2026-09-08
安装包大小 21.5 MB(22,553,088 字节)· rustdesk-1.4.11-install.exe(Windows 64 位安装包)
SHA256 校验 8c7386e11729fa9c6e9ac7fa4bbcbfad44de0739d50c4faf5833ce4db1c4a25a
系统要求 Windows 10/11、Windows Server 2016 及以上(64 位),macOS 10.14+ 与主流 Linux 桌面发行版(已在 Ubuntu / Fedora / Arch 验证)
中继服务 支持自建中继服务器(hbbs / hbbr)私有部署,也可使用上游公共中继;连接参数在客户端「设置 → 网络」中配置
授权方式 免费使用,禁止商业用途;上游 RustDesk 遵循 AGPL-3.0,二次分发须保留开源协议
界面语言 简体中文 / 英文(沿用上游多语言资源)
更新日志 v1.4.11 发行版说明 ↗;全部提交记录见 Gitee 提交历史 ↗,主要在 flutter/src/ 下做改动
下载说明

Windows 64 位安装包 rustdesk-1.4.11-install.exe(21.5 MB)发布在 Gitee 发行版页面 ↗。下载前请核对版本号与安装包 SHA256,安装前建议先阅读下方《用户协议与免责声明》。

反馈与联系

使用中遇到问题或有改进建议,欢迎通过 联系页面 或邮件 lxdfox@qq.com 反馈,也可以在 Gitee 仓库提交 Issue。反馈时请附客户端版本号、操作系统版本与问题截图,便于定位。

软件介绍

RustDesk 是一款开源的远程桌面软件,可完全自建服务器、数据不出内网,是 TeamViewer / AnyDesk 等商业软件的可控自建替代方案。本仓库是 RustDesk 官方版本的定制增强分支(v1.4.11),在完整保留上游开源能力的基础上,针对企业内部 Windows 批量部署与运维场景做了以下增强。下表为本分支独有功能,官方原版不具备。

#功能说明
1跨会话文件复制粘贴控制端 A 会话中复制的文件,可在控制端 B 会话中直接粘贴(纯 Rust 层 cliprdr 消息中继,无需被控端参与),跨被控设备批量传文件更高效
2远程文件复制粘贴被控端 ↔ 控制端之间可直接复制/粘贴文件(sessionStart 事件流,剪贴板通道自动协商)
3剪贴板自动恢复每次新建连接自动重建剪贴板上下文(make_sure_enabled),检测到 stopped 自动 reset/recreate,长时间会话不再丢剪贴板
4安装后自动启动安装/覆盖安装完成后自动弹出主窗口 + 托盘图标,服务自动创建并设为自启动(Automatic + RUNNING),已配置 ID/中继服务器时自动连接
5卸载彻底清除配置卸载时可选择一并删除用户及系统服务账户下的全部配置(ID、密码、连接记录、日志等),干净卸载不留残留(附带 cleanup_rustdesk_config.ps1 手动清理脚本)
6CM 窗口完全隐藏连接管理窗口默认不弹出、不抢焦点,每 30 秒强制防弹窗加固,适合无人值守部署
7静默提权安装安装包 manifest requireAdministrator,支持 --silent-install 一键静默安装;安装器支持自选安装路径
8安装失败可诊断安装 bat 逐行执行日志写入 %TEMP%\RustDesk_install.bat.log(Stdio 物理重定向),失败弹窗直接提示日志路径,现场可追溯
9服务操作竞态修复sc stop/delete/create 增加等待循环,消除 1073/1077 竞态导致的安装失败
免责说明

本项目基于开源 RustDesk(AGPL-3.0)二次开发,本人为非职业开发者,仅在业余时间维护。客户端代码由 AI 与人工协同完成,使用过程中遇到问题欢迎反馈。

适用场景

面向企业内网远程运维、分支机构技术支持、无人值守设备远程协助,以及需要替代 TeamViewer / AnyDesk 等商业软件、寻求可控自建方案的团队。

核心定制点(本分支独有)

  • 跨会话复制文件控制端 A 会话复制的文件可直接粘贴到控制端 B 会话,跨被控设备批量传文件更高效
  • 安装后自动启动服务并连接安装完成后自动弹出主窗口与托盘图标,服务设为自启动,已配置 ID/中继服务器时自动连接
  • 卸载可彻底清除配置卸载时可选删除用户及系统服务账户下的全部配置,并附带 cleanup_rustdesk_config.ps1 手动清理脚本
  • CM 窗口完全隐藏连接管理窗口默认不弹出、不抢焦点,每 30 秒强制防弹窗加固,适合无人值守部署

自建中继服务端部署

RustDesk 的服务端分两个组件:hbbs(信令 / 注册)和 hbbr(中继转发)。以下是通用的自建部署教程,示例中的服务器地址均使用占位符,请替换为您自己的主机。自建后所有远程桌面流量均经由您自己的服务器转发,不经过任何第三方。

注意

本节为可选的通用部署教程。本客户端不预设任何服务端信息,是否需要自建、使用哪台主机、采用何种端口映射,完全由使用者自行决定并自行配置。

部署前准备

  • 服务端主机Linux 主机(Ubuntu / Debian / CentOS),已安装 Docker 27+ 与 docker-compose
  • 网络与端口对外暴露以下端口:hbbs 21115/tcp、21116/tcp+udp;hbbr 21117/tcp、21118/tcp+udp。外网映射端口可按需自行指定
  • 服务器地址建议客户端使用 <您的服务器 IP 或域名>:21116 形式填写,避免 DNS 解析问题
  • 加密密钥使用 openssl rand -base64 32 生成 32 字节密钥,所有客户端与服务端必须保持一致

Docker 启动示例

  1. 创建 docker-compose.yml 内容包含 hbbs 与 hbbr 两个服务,共享 -v ./data:/root,将密钥作为 -k 参数传入。
  2. 启动服务docker-compose.yml 同目录下执行 docker compose up -d,服务以独立容器在后台运行。
  3. 提取服务端 Key 启动后查看 ./data/ 下的 id_ed25519.pub 或容器日志中的 key 字符串,保存供后续客户端使用。
  4. 配置客户端 打开 RustDesk 客户端 → 设置 → 网络 → ID/中继服务器,填入自建服务器的 ID 服务器和中继服务器地址,将密钥粘贴到「Key」字段。
  5. 验证互通 在两台客户端上填入相同的服务器信息,主控端输入被控端 ID 即可远程连接;如能直连,整个过程完全不经过中继服务器。
  6. 防火墙与白名单 在防火墙放行上述端口,并按需配置 IP 白名单,仅允许授权客户端接入。
提示

客户端配置文件位于 %APPDATA%\\RustDesk\\config\\RustDesk2.toml(Windows)或 ~/.config/rustdesk/RustDesk2.toml(Linux)。该文件中的 custom-rendezvous-serverrelay-serverkey 三项默认为空,由使用者按需填写;批量部署时可自行编写脚本下发自己的配置。

运行要求及测试结果

以下为客户端 v1.4.11 在实际使用中验证通过的运行环境与服务端要求,供部署前评估参考。

客户端(Client)

操作系统 Windows 10/11、Windows Server 2016 及以上(64 位);macOS 10.14+;Linux 桌面发行版(Ubuntu / Fedora / Arch 验证通过)
处理器 双核 1.5 GHz 及以上;启用硬件编码(如 Intel QSV / NVIDIA NVENC)可显著降低远程端 CPU 占用
内存 最低 4 GB;分辨率与帧率越高,内存需求相应提高
网络与端口 客户端无需对外开放端口;通过中继服务与对端协商端口(可直连时流量不经中继)
授权方式 免费使用,禁止商业用途;二次分发须遵守上游 AGPL-3.0 条款

自建服务端(hbbs + hbbr)

部署方式 Docker 容器(lejianwen/rustdesk-server 镜像),也可用官方 rustdesk/rustdesk-server 镜像直接构建
网络与端口 hbbs:21115/tcp(信令)、21116/tcp+udp(注册与打洞);hbbr:21117/tcp(中继)、21118/tcp+udp(Web 客户端);外网映射端口由部署者自行指定
加密密钥 使用 openssl rand -base64 32 生成;全网络共享,服务端与所有客户端保持一致
数据存储 服务端 data/ 目录持久化设备注册信息;定期备份即可,无外部数据库依赖
日志验证 启动后查看容器日志或 data/ 日志文件,确认客户端注册成功
说明

如需最小化验证又不想搭服务端,RustDesk 客户端支持 IP 直连:<ID>@<IP>:<端口>?key=<密钥>,适合临时救急或同一内网内小规模场景;长期方案仍推荐完整自建。

界面与核心功能

一、连接管理与主控端

主控端在连接管理界面输入对端 ID 与(可选)临时密码即可建立远程会话。已配对设备会出现在设备列表中,点击即可一键连接;如需使用自建中继服务端,可在「设置 → 网络 → ID/中继服务器」中配置相应的 ID 服务器、中继服务器与 Key。

主控端连接管理 更多截图待补充

二、文件传输与远程复制

远程会话中可使用工具栏的文件传输按钮,在主控端与被控端之间上传/下载文件,并支持多文件批量操作。定制版在剪贴板链路上做了三点增强:跨会话文件复制粘贴——控制端 A 会话复制的文件可直接粘贴到控制端 B 会话,无需被控端参与;远程文件复制粘贴——被控端与控制端之间可直接复制/粘贴文件,不必打开文件管理器拖拽;剪贴板自动恢复——每次新建连接自动重建剪贴板上下文,长时间会话不再丢剪贴板。

远程文件传输 · 远程复制粘贴 更多截图待补充

三、TCP 隧道与终端

客户端内置 TCP 隧道能力,可在主控端访问被控端内网端口,相当于开了一条加密隧道;适合远程访问内网服务、调试隔离网络下的应用。基于 Flutter 的终端窗口可以在主控端内直接执行 cmd / bash / PowerShell 命令,输出即时回显。

四、静默安装与自动启动

使用者可根据自己的环境,在「设置 → 网络 → ID/中继服务器」中填写自建服务端信息,或直接使用上游公共中继。批量部署时:安装包 manifest 声明 requireAdministrator,支持 --silent-install 一键静默安装,安装器支持自选安装路径;安装完成后自动弹出主窗口与托盘图标,服务自动创建并设为自启动,已配置 ID/中继服务器时自动连接;卸载时可选择一并清除全部配置;若安装失败,可查看 %TEMP%\RustDesk_install.bat.log 逐行日志定位。

小贴士

如需通过配置文件而非 UI 填写,可编辑 %APPDATA%\\RustDesk\\config\\RustDesk2.toml 中的 custom-rendezvous-serverrelay-server 项,密钥字段为 key;需要彻底清理时可执行随包提供的 cleanup_rustdesk_config.ps1

运行时依赖与第三方组件

RustDesk 自定义客户端(v1.4.11)在构建与运行时依赖以下开源组件(以本分支 Cargo.toml / pubspec.yaml 为准,上游为 RustDesk 官方开源版本)。所有组件均遵循其原始开源许可协议,版权归各自作者所有。上游 RustDesk 主体遵循 AGPL-3.0 开源协议。此处仅作使用声明与致谢,组件清单可能随上游升级与本项目定制而调整。

核心组件(Cargo 顶层)

组件版本主要用途
hbb_commonworkspace编解码、配置、TCP/UDP 封装、protobuf、文件传输通用工具
scrapworkspace屏幕采集(DXGI/X11/macOS)
enigoworkspace跨平台键鼠控制
clipboardworkspaceWindows / Linux / macOS 文件复制粘贴实现
flutter_rust_bridge= 1.80Rust ↔ Flutter FFI 桥接
reqwest0.12HTTP 客户端(blocking/socks/json/native-tls/rustls-tls/gzip/zstd)
tokio / parity-tokio-ipc0.1 (parity fork)异步运行时 / 跨进程 IPC
serde / serde_json / serde_derive1.0序列化 / 反序列化
chrono0.4日期时间处理
uuid1.3 (v4)UUID 生成
sha20.10SHA-2 哈希
totp-rs5.4二步验证 TOTP
stunclient0.4NAT 打洞 STUN 客户端
kcp-sys(rustdesk fork)KCP 可靠 UDP 传输
magnum-opus(rustdesk fork)Opus 音频编解码

客户端 GUI(Flutter 端)

组件版本主要用途
Flutter(上游 stable)桌面 / 移动端 UI 框架
XTerm.js (Flutter 桥接)(兼容)远程终端渲染
flutter_rust_bridge codegen= 1.80Rust API 自动绑定为 Dart 调用

服务端(hbbs / hbbr,以 Docker 运行)

组件版本主要用途
hbbs(rustdesk-server)信令 / 注册 / NAT 打洞协调
hbbr(rustdesk-server)中继转发(直连失败时承担全部流量)
Docker Imagelejianwen/rustdesk-server运行时容器镜像(基于官方)
提示

上表仅列出主要依赖;完整列表请参考上游 Cargo.tomlflutter/ 目录。客户端依赖会随上游升级与本项目定制而调整,实际以 Cargo.lockflutter_rust_bridge 桥接代码为准。

已知限制

为避免使用预期与实际不符,现将当前版本的能力边界如实列出。以下限制会随上游与本项目的迭代逐步改善。

  • 依赖中继服务端可用性若使用自建 hbbs / hbbr 服务,需确保服务端可达并已放开对应端口;服务端不可达时需切换回公共中继或调整防火墙
  • 增强项面向 Windows 桌面端CM 窗口隐藏、安装后自动启动、卸载清除配置、静默提权安装等改造均针对 Windows 桌面端,macOS / Linux 与移动端暂未涉及
  • 静默安装需管理员权限安装包 manifest 声明 requireAdministrator,普通用户身份安装会触发 UAC 提示
  • 剪贴板同步遵循 OS 权限Linux Wayland 环境下剪贴板受 Portal 限制,部分桌面需要先授权才能跨机同步
  • 维护节奏不固定作者非职业开发者,仅利用业余时间维护;问题响应、Bug 修复与版本发布周期无法承诺时效