rustdesk/rustdesk

GitHub: rustdesk/rustdesk

一款基于 Rust 开发的开源远程桌面软件,支持自建服务器、跨平台远程控制、文件传输和 TCP 隧道功能。

Stars: 108578 | Forks: 16165

RustDesk - Your remote desktop
BuildDockerStructureSnapshot
[Українська] | [česky] | [中文] | [Magyar] | [Español] | [فارسی] | [Français] | [Deutsch] | [Polski] | [Indonesian] | [Suomi] | [മലയാളം] | [日本語] | [Nederlands] | [Italiano] | [Русский] | [Português (Brasil)] | [Esperanto] | [한국어] | [العربي] | [Tiếng Việt] | [Dansk] | [Ελληνικά] | [Türkçe] | [Norsk] | [Română]
We need your help to translate this README, RustDesk UI and RustDesk Doc to your native language

加入讨论:[Discord](https://discord.gg/nDceKgxnkV) | [Twitter](https://twitter.com/rustdesk) | [Reddit](https://www.reddit.com/r/rustdesk) | [YouTube](https://www.youtube.com/@rustdesk) 又一远程桌面软件,使用 Rust 编写。开箱即用,无需任何配置。您完全掌控自己的数据,无需担忧安全性。您可以使用我们的 rendezvous/relay 服务器,也可以[自建](https://rustdesk.com/server),或者[编写自己的 rendezvous/relay 服务器](https://github.com/rustdesk/rustdesk-server-demo)。 ![image](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/15d0143f31142534.png) [**常见问题**](https://github.com/rustdesk/rustdesk/wiki/FAQ) [**二进制文件下载**](https://github.com/rustdesk/rustdesk/releases) [**每日构建 (Nightly Build)**](https://github.com/rustdesk/rustdesk/releases/tag/nightly) [Get it on F-Droid](https://f-droid.org/en/packages/com.carriez.flutter_hbb) [Get it on Flathub](https://flathub.org/apps/com.rustdesk.RustDesk) ## 依赖 桌面版本使用 Flutter 或 Sciter(已弃用)作为 GUI,本教程仅针对 Sciter,因为它入门更简单友好。请查看我们的 [CI](https://github.com/rustdesk/rustdesk/blob/master/.github/workflows/flutter-build.yml) 以构建 Flutter 版本。 请自行下载 Sciter 动态库。 [Windows](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.win/x64/sciter.dll) | [Linux](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.lnx/x64/libsciter-gtk.so) | [macOS](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.osx/libsciter.dylib) ## 构建的基本步骤 - 准备好 Rust 开发环境和 C++ 构建环境 - 安装 [vcpkg](https://github.com/microsoft/vcpkg),并正确设置 `VCPKG_ROOT` 环境变量 - Windows: vcpkg install libvpx:x64-windows-static libyuv:x64-windows-static opus:x64-windows-static aom:x64-windows-static - Linux/macOS: vcpkg install libvpx libyuv opus aom - 运行 `cargo run` ## [构建](https://rustdesk.com/docs/en/dev/build/) ## 如何在 Linux 上构建 ### Ubuntu 18 (Debian 10) ``` sudo apt install -y zip g++ gcc git curl wget nasm yasm libgtk-3-dev clang libxcb-randr0-dev libxdo-dev \ libxfixes-dev libxcb-shape0-dev libxcb-xfixes0-dev libasound2-dev libpulse-dev cmake make \ libclang-dev ninja-build libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libpam0g-dev ``` ### openSUSE Tumbleweed ``` sudo zypper install gcc-c++ git curl wget nasm yasm gcc gtk3-devel clang libxcb-devel libXfixes-devel cmake alsa-lib-devel gstreamer-devel gstreamer-plugins-base-devel xdotool-devel pam-devel ``` ### Fedora 28 (CentOS 8) ``` sudo yum -y install gcc-c++ git curl wget nasm yasm gcc gtk3-devel clang libxcb-devel libxdo-devel libXfixes-devel pulseaudio-libs-devel cmake alsa-lib-devel gstreamer1-devel gstreamer1-plugins-base-devel pam-devel ``` ### Arch (Manjaro) ``` sudo pacman -Syu --needed unzip git cmake gcc curl wget yasm nasm zip make pkg-config clang gtk3 xdotool libxcb libxfixes alsa-lib pipewire ``` ### 安装 vcpkg ``` git clone https://github.com/microsoft/vcpkg cd vcpkg git checkout 2023.04.15 cd .. vcpkg/bootstrap-vcpkg.sh export VCPKG_ROOT=$HOME/vcpkg vcpkg/vcpkg install libvpx libyuv opus aom ``` ### 修复 libvpx (针对 Fedora) ``` cd vcpkg/buildtrees/libvpx/src cd * ./configure sed -i 's/CFLAGS+=-I/CFLAGS+=-fPIC -I/g' Makefile sed -i 's/CXXFLAGS+=-I/CXXFLAGS+=-fPIC -I/g' Makefile make cp libvpx.a $HOME/vcpkg/installed/x64-linux/lib/ cd ``` ### 构建 ``` curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh source $HOME/.cargo/env git clone --recurse-submodules https://github.com/rustdesk/rustdesk cd rustdesk mkdir -p target/debug wget https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.lnx/x64/libsciter-gtk.so mv libsciter-gtk.so target/debug VCPKG_ROOT=$HOME/vcpkg cargo run ``` ## 如何使用 Docker 构建 首先克隆仓库并构建 Docker 容器: ``` git clone https://github.com/rustdesk/rustdesk cd rustdesk git submodule update --init --recursive docker build -t "rustdesk-builder" . ``` 然后,每次需要构建应用程序时,运行以下命令: ``` docker run --rm -it -v $PWD:/home/user/rustdesk -v rustdesk-git-cache:/home/user/.cargo/git -v rustdesk-registry-cache:/home/user/.cargo/registry -e PUID="$(id -u)" -e PGID="$(id -g)" rustdesk-builder ``` 请注意,首次构建在缓存依赖项之前可能需要较长时间,随后的构建会更快。此外,如果您需要向构建命令指定不同的参数,可以在命令末尾的 `` 位置添加。例如,如果您想构建优化后的 release 版本,可以在上述命令后跟 `--release`。生成的可执行文件将在您系统的 target 文件夹中可用,可以通过以下方式运行: ``` target/debug/rustdesk ``` 或者,如果您运行的是 release 可执行文件: ``` target/release/rustdesk ``` 请确保您在 RustDesk 仓库的根目录下运行这些命令,否则应用程序可能无法找到所需的资源。另请注意,目前不支持通过此方法使用其他 cargo 子命令(如 `install` 或 `run`),因为它们会在容器内而不是主机上安装或运行程序。 ## 文件结构 - **[libs/hbb_common](https://github.com/rustdesk/rustdesk/tree/master/libs/hbb_common)**: 视频编解码器、配置、tcp/udp 封装、protobuf、用于文件传输的 fs 函数以及其他实用函数 - **[libs/scrap](https://github.com/rustdesk/rustdesk/tree/master/libs/scrap)**: 屏幕捕获 - **[libs/enigo](https://github.com/rustdesk/rustdesk/tree/master/libs/enigo)**: 特定平台的键盘/鼠标控制 - **[libs/clipboard](https://github.com/rustdesk/rustdesk/tree/master/libs/clipboard)**: Windows, Linux, macOS 的文件复制粘贴实现。 - **[src/ui](https://github.com/rustdesk/rustdesk/tree/master/src/ui)**: 旧的 Sciter UI(已弃用) - **[src/server](https://github.com/rustdesk/rustdesk/tree/master/src/server)**: 音频/剪贴板/输入/视频服务,以及网络连接 - **[src/client.rs](https://github.com/rustdesk/rustdesk/tree/master/src/client.rs)**: 启动对等连接 - **[src/rendezvous_mediator.rs](https://github.com/rustdesk/rustdesk/tree/master/src/rendezvous_mediator.rs)**: 与 [rustdesk-server](https://github.com/rustdesk/rustdesk-server) 通信,等待远程直接(TCP 打洞)或中继连接 - **[src/platform](https://github.com/rustdesk/rustdesk/tree/master/src/platform)**: 特定平台代码 - **[flutter](https://github.com/rustdesk/rustdesk/tree/master/flutter)**: 桌面和移动端的 Flutter 代码 - **[flutter/web/js](https://github.com/rustdesk/rustdesk/tree/master/flutter/web/v1/js)**: Flutter Web 客户端的 JavaScript 代码 ## 截图 ![Connection Manager](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/2d828c3c2d142537.png) ![Connected to a Windows PC](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/f9eb7f313d142540.png) ![File Transfer](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/8ae8487ad1142542.png) ![TCP Tunneling](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/304aff2a10142544.png)
标签:Awesome, Docker, Flutter, IT管理, P2P, PE 加载器, RDP, Rust, RustDesk, Sciter, TeamViewer替代, VNC, 低延迟, 可视化界面, 安全防御评估, 开源, 文件传输, 桌面共享, 端到端加密, 系统管理, 网络工具, 网络流量审计, 自托管, 请求拦截, 远程办公, 远程协助, 远程控制, 远程桌面, 远程访问, 通知系统, 通知系统