【Rust日报】2024-01-31 RustDesk -- 基于 Rust 的开源远程桌面

【Rust日报】2024-01-31 RustDesk -- 基于 Rust 的开源远程桌面

💡 原文中文,约4600字,阅读约需11分钟。
📝

内容提要

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 库的根目录内运行,否则软件会读不到文件。

🏷️

标签

➡️

继续阅读