RustDesk 官方版本的定制增强分支 v1.4.11,沿用上游 Rust + Flutter 双端架构,在完整保留上游开源能力的基础上,针对企业内部 Windows 批量部署与运维场景做了 9 项增强:跨会话文件复制粘贴、远程文件复制粘贴、剪贴板自动恢复、安装后自动启动并连接、卸载彻底清除配置、CM 窗口完全隐藏、静默提权安装、安装失败可诊断、服务操作竞态修复,并支持自建中继服务器私有部署。
| 当前版本 | 客户端 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 手动清理脚本) |
| 6 | CM 窗口完全隐藏 | 连接管理窗口默认不弹出、不抢焦点,每 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 等商业软件、寻求可控自建方案的团队。
cleanup_rustdesk_config.ps1 手动清理脚本RustDesk 的服务端分两个组件:hbbs(信令 / 注册)和 hbbr(中继转发)。以下是通用的自建部署教程,示例中的服务器地址均使用占位符,请替换为您自己的主机。自建后所有远程桌面流量均经由您自己的服务器转发,不经过任何第三方。
本节为可选的通用部署教程。本客户端不预设任何服务端信息,是否需要自建、使用哪台主机、采用何种端口映射,完全由使用者自行决定并自行配置。
<您的服务器 IP 或域名>:21116 形式填写,避免 DNS 解析问题openssl rand -base64 32 生成 32 字节密钥,所有客户端与服务端必须保持一致-v ./data:/root,将密钥作为 -k 参数传入。
docker-compose.yml 同目录下执行 docker compose up -d,服务以独立容器在后台运行。
./data/ 下的 id_ed25519.pub 或容器日志中的 key 字符串,保存供后续客户端使用。
客户端配置文件位于 %APPDATA%\\RustDesk\\config\\RustDesk2.toml(Windows)或 ~/.config/rustdesk/RustDesk2.toml(Linux)。该文件中的 custom-rendezvous-server、relay-server 与 key 三项默认为空,由使用者按需填写;批量部署时可自行编写脚本下发自己的配置。
以下为客户端 v1.4.11 在实际使用中验证通过的运行环境与服务端要求,供部署前评估参考。
| 操作系统 | 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 条款 |
| 部署方式 | 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 隧道能力,可在主控端访问被控端内网端口,相当于开了一条加密隧道;适合远程访问内网服务、调试隔离网络下的应用。基于 Flutter 的终端窗口可以在主控端内直接执行 cmd / bash / PowerShell 命令,输出即时回显。
使用者可根据自己的环境,在「设置 → 网络 → ID/中继服务器」中填写自建服务端信息,或直接使用上游公共中继。批量部署时:安装包 manifest 声明 requireAdministrator,支持 --silent-install 一键静默安装,安装器支持自选安装路径;安装完成后自动弹出主窗口与托盘图标,服务自动创建并设为自启动,已配置 ID/中继服务器时自动连接;卸载时可选择一并清除全部配置;若安装失败,可查看 %TEMP%\RustDesk_install.bat.log 逐行日志定位。
如需通过配置文件而非 UI 填写,可编辑 %APPDATA%\\RustDesk\\config\\RustDesk2.toml 中的 custom-rendezvous-server 与 relay-server 项,密钥字段为 key;需要彻底清理时可执行随包提供的 cleanup_rustdesk_config.ps1。
RustDesk 自定义客户端(v1.4.11)在构建与运行时依赖以下开源组件(以本分支 Cargo.toml / pubspec.yaml 为准,上游为 RustDesk 官方开源版本)。所有组件均遵循其原始开源许可协议,版权归各自作者所有。上游 RustDesk 主体遵循 AGPL-3.0 开源协议。此处仅作使用声明与致谢,组件清单可能随上游升级与本项目定制而调整。
| 组件 | 版本 | 主要用途 |
|---|---|---|
| hbb_common | workspace | 编解码、配置、TCP/UDP 封装、protobuf、文件传输通用工具 |
| scrap | workspace | 屏幕采集(DXGI/X11/macOS) |
| enigo | workspace | 跨平台键鼠控制 |
| clipboard | workspace | Windows / Linux / macOS 文件复制粘贴实现 |
| flutter_rust_bridge | = 1.80 | Rust ↔ Flutter FFI 桥接 |
| reqwest | 0.12 | HTTP 客户端(blocking/socks/json/native-tls/rustls-tls/gzip/zstd) |
| tokio / parity-tokio-ipc | 0.1 (parity fork) | 异步运行时 / 跨进程 IPC |
| serde / serde_json / serde_derive | 1.0 | 序列化 / 反序列化 |
| chrono | 0.4 | 日期时间处理 |
| uuid | 1.3 (v4) | UUID 生成 |
| sha2 | 0.10 | SHA-2 哈希 |
| totp-rs | 5.4 | 二步验证 TOTP |
| stunclient | 0.4 | NAT 打洞 STUN 客户端 |
| kcp-sys | (rustdesk fork) | KCP 可靠 UDP 传输 |
| magnum-opus | (rustdesk fork) | Opus 音频编解码 |
| 组件 | 版本 | 主要用途 |
|---|---|---|
| Flutter | (上游 stable) | 桌面 / 移动端 UI 框架 |
| XTerm.js (Flutter 桥接) | (兼容) | 远程终端渲染 |
| flutter_rust_bridge codegen | = 1.80 | Rust API 自动绑定为 Dart 调用 |
| 组件 | 版本 | 主要用途 |
|---|---|---|
| hbbs | (rustdesk-server) | 信令 / 注册 / NAT 打洞协调 |
| hbbr | (rustdesk-server) | 中继转发(直连失败时承担全部流量) |
| Docker Image | lejianwen/rustdesk-server | 运行时容器镜像(基于官方) |
上表仅列出主要依赖;完整列表请参考上游 Cargo.toml 与 flutter/ 目录。客户端依赖会随上游升级与本项目定制而调整,实际以 Cargo.lock 与 flutter_rust_bridge 桥接代码为准。
为避免使用预期与实际不符,现将当前版本的能力边界如实列出。以下限制会随上游与本项目的迭代逐步改善。
requireAdministrator,普通用户身份安装会触发 UAC 提示RustDesk 自定义客户端(v1.4.11)基于开源 rustdesk 进行二次开发,主体遵循 AGPL-3.0 开源协议。下载、安装或使用本软件,即表示你已阅读并同意上述协议的全部内容;如不同意,请立即停止下载与安装。以下为要点摘要,完整内容以项目 LICENSE 文件为准。