
rustdesk nightly
一款为自托管设计的开源远程桌面应用,作为TeamViewer的替代方案。
服务器 •
编译 •
Docker •
结构 •
截图
[English] | [Українська] | [česky] | [Magyar] | [Español] | [فارسی] | [Français] | [Deutsch] | [Polski] | [Indonesian] | [Suomi] | [മലയാളം] | [日本語] | [Nederlands] | [Italiano] | [Русский] | [Português (Brasil)] | [Esperanto] | [한국어] | [العربي] | [Tiếng Việt] | [Ελληνικά]
[!CAUTION] 免责声明:
RustDesk 的开发人员不纵容或支持任何不道德或非法的软件使用行为。滥用行为,例如未经授权的访问、控制或侵犯隐私,严格违反我们的准则。作者对应用程序的任何滥用行为概不负责。
与我们交流: 知乎 | Discord | Reddit | YouTube
远程桌面软件,开箱即用,无需任何配置。您完全掌控数据,不用担心安全问题。您可以使用我们的注册/中继服务器, 或者自己设置, 亦或者开发您的版本。

RustDesk 期待各位的贡献. 如何参与开发? 详情请看 CONTRIBUTING-ZH.md.
依赖
桌面版本使用 Flutter 或 Sciter(已弃用)作为 GUI,本教程仅适用于 Sciter,因为它更简单且更易于上手。查看我们的CI以构建 Flutter 版本。
请自行下载Sciter动态库。
基本构建步骤
-
请准备好 Rust 开发环境和 C++ 编译环境
-
安装 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
构建
在 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
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
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
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 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 # 克隆Github存储库
cd rustdesk # 进入文件夹
docker build -t "rustdesk-builder" . # 构建容器
请注意:
- 针对国内网络访问问题,可以做以下几点优化:
-
Dockerfile 中修改系统的源到国内镜像
在Dockerfile的RUN apt update之前插入两行: RUN sed -i "s|deb.debian.org|mirrors.aliyun.com|g" /etc/apt/sources.list && \ sed -i "s|security.debian.org|mirrors.aliyun.com|g" /etc/apt/sources.list -
修改容器系统中的 cargo 源,在
RUN ./rustup.sh -y后插入下面代码:RUN echo '[source.crates-io]' > ~/.cargo/config \ && echo 'registry = "https://github.com/rust-lang/crates.io-index"' >> ~/.cargo/config \ && echo '# 替换成你偏好的镜像源' >> ~/.cargo/config \ && echo "replace-with = 'sjtu'" >> ~/.cargo/config \ && echo '# 上海交通大学' >> ~/.cargo/config \ && echo '[source.sjtu]' >> ~/.cargo/config \ && echo 'registry = "https://mirrors.sjtug.sjtu.edu.cn/git/crates.io-index"' >> ~/.cargo/config \ && echo '' >> ~/.cargo/config -
Dockerfile 中加入代理的 env
在User root后插入两行 ENV http_proxy=http://host:port ENV https_proxy=http://host:port -
docker build 命令后面加上 proxy 参数
docker build -t "rustdesk-builder" . --build-arg http_proxy=http://host:port --build-arg https_proxy=http://host:port
-
构建 RustDesk 程序
然后, 每次需要构建应用程序时, 运行以下命令:
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
