内容提要
RustDesk是一个基于Rust开发的开源远程桌面,可替代TeamViewer。它易于使用且无需配置,用户可以完全掌控数据安全。
延伸解读
自建服务器的灵活性
RustDesk 允许用户使用官方注册/中继服务器,或自行搭建服务器,甚至基于开源代码开发自己的版本。这种设计让用户能完全掌控数据流向,避免依赖第三方服务,适合对数据安全有较高要求的场景。
构建前的环境准备
构建 RustDesk 需要同时具备 Rust 开发环境和 C++ 编译环境,并安装 vcpkg 来管理 libvpx、libyuv、opus、aom 等依赖。不同操作系统(Windows、Linux、macOS)的依赖安装命令各异,需按文档逐步操作。
国内构建的网络优化
使用 Docker 编译时,国内网络可能遇到拉取失败或速度慢的问题。可以修改 Dockerfile,将系统源替换为国内镜像(如 mirrors.163.com),并配置 Cargo 使用上海交大等镜像源,从而提升构建成功率。
Docker 构建的权限与缓存
Docker 构建首次运行会因缓存依赖而较慢,且可能因 UID/GID 不一致导致权限错误。若出现 usermod 或 groupmod 报错,可尝试去掉 -e PUID 和 -e PGID 参数。生成的可执行文件位于 target 目录,需在项目根目录下运行。
Q&A
RustDesk 是什么?它和 TeamViewer 有什么关系?
RustDesk 是一个基于 Rust 开发的开源远程桌面软件,可以作为 TeamViewer 的替代品。它开箱即用,无需配置,用户完全掌控数据安全。
RustDesk 如何保证数据安全?
RustDesk 让用户完全掌控数据,不用担心安全问题。用户可以选择使用官方的注册/中继服务器,或者自己设置服务器,也可以开发自己的版本。
构建 RustDesk 需要准备哪些环境?
需要准备 Rust 开发环境和 C++ 编译环境,并安装 vcpkg,正确设置 VCPKG_ROOT 环境变量。
在 Linux 上编译 RustDesk 需要安装哪些依赖?
不同发行版依赖不同。例如 Ubuntu 18 (Debian 10) 需要安装 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 等。
使用 Docker 编译 RustDesk 时,如何解决国内网络访问问题?
可以修改 Dockerfile:将系统源替换为国内镜像(如 mirrors.163.com),修改 cargo 源为国内镜像(如上海交通大学镜像),并加入代理环境变量。
构建 RustDesk 程序时,Docker 命令中的 PUID 和 PGID 参数有什么作用?如果出现权限错误怎么办?
PUID 和 PGID 参数用于指定容器内用户的 UID 和 GID,避免权限问题。如果出现 'usermod: user user is currently used by process 1' 等错误,可以尝试去掉 -e PUID="$(id -u)" -e PGID="$(id -g)" 参数。
编译完成后,如何运行 RustDesk 程序?
生成的可执行程序在 target 目录下。调试版本运行 target/debug/rustdesk,发行版本运行 target/release/rustdesk。注意必须在 RustDesk 库的根目录内运行,否则软件会读不到文件。