RustDesk:开源电脑远程控制软件
RustDesk:开源电脑远程控制软件
- RustDesk:开源电脑远程控制软件
- 一、RustDesk 简介
- 二、下载教程
- 2.1 桌面版下载
- 2.2 Android 版下载
- 三、安装教程
- 3.1 桌面版安装
- 四、功能讲解
- 4.1 远程控制
- 4.2 文件传输
- 4.3 安全可靠
- 4.4 自定义服务器
- 五、RustDesk技术架构解析
- 5.1 核心技术栈
- 5.2 网络通信协议
- 5.3 服务器架构
- 六、高级安装配置指南
- 6.1 自建服务器部署
- 6.2 客户端高级配置
- 七、高级功能实战
- 7.1 多因素认证配置
- 7.2 自定义插件开发
- 7.3 脚本自动化操作
- 八、性能优化与故障排除
- 8.1 网络优化策略
- 8.2 常见故障排除
- 8.3 性能监控
- 九、企业级部署方案
- 9.1 混合云部署架构
- 9.2 安全审计方案
- 9.3 用户权限管理
- 十、社区与贡献
RustDesk:开源电脑远程控制软件
一、RustDesk 简介
RustDesk 是一款由 Rust 语言编写的远程桌面软件,它可以让你在无需复杂配置的情况下,立即开始使用远程控制功能。你可以完全掌控自己的数据,不用担心安全问题。同时,它提供了多种服务器使用方式,你可以使用官方的 rendezvous/relay 服务器,也可以自己搭建服务器,甚至可以编写自己的 rendezvous/relay 服务器。
二、下载教程
2.1 桌面版下载
你可以从 RustDesk 的官方发布页面进行下载:DESCARGA DE BINARIOS。在这个页面中,你可以根据自己的操作系统选择合适的版本进行下载,例如 Windows、macOS、Linux 等。
2.2 Android 版下载
如果你需要在 Android 设备上使用 RustDesk,可以通过 F-Droid 进行下载:Get it on F-Droid。
三、安装教程
3.1 桌面版安装
- Windows 系统:下载完成后,双击下载的安装包,按照安装向导的提示进行操作,通常只需点击“下一步”即可完成安装。
- macOS 系统:下载完成后,将下载的文件拖放到“应用程序”文件夹中,然后在“应用程序”中找到 RustDesk 并打开。
- Linux 系统:不同的 Linux 发行版安装方式可能略有不同。一般来说,你可以使用包管理器进行安装,例如在 Ubuntu 系统中,可以使用以下命令进行安装:
sudo dpkg -i <下载的.deb包文件名>
四、功能讲解
4.1 远程控制
RustDesk 可以让你轻松地远程控制另一台设备。在 Android 设备上,为了让远程设备通过鼠标或触摸控制您的 Android 设备,您需要允许 RustDesk 使用“Accessibility”服务,RustDesk 使用 AccessibilityService API 来实现 Android 远程控制。在桌面版中,你只需输入对方的 ID 或地址,即可发起远程控制请求。
4.2 文件传输
除了远程控制,你还可以使用 RustDesk 在 Android 设备和 PC 之间轻松传输文件。在远程控制过程中,你可以直接在界面中找到文件传输的功能按钮,选择要传输的文件即可完成文件传输。
4.3 安全可靠
你完全掌控自己的数据,不用担心安全问题。RustDesk 提供了多种安全机制,例如使用加密通道进行数据传输,同时你还可以使用自己的 rendezvous/relay 服务器,进一步增强数据的安全性。
4.4 自定义服务器
你可以使用官方的 rendezvous/relay 服务器,也可以自己搭建服务器,甚至可以编写自己的 rendezvous/relay 服务器。自建服务器的相关信息可以参考:https://rustdesk.com/server 和 https://github.com/rustdesk/rustdesk-server-demo。
五、RustDesk技术架构解析
5.1 核心技术栈
RustDesk采用多语言混合架构:
- 核心通信层使用Rust语言开发,利用其内存安全特性和高性能优势
- 前端界面基于Flutter框架构建,实现跨平台UI一致性
- 音视频编解码采用WebRTC技术栈,支持高清低延迟传输
5.2 网络通信协议
RustDesk使用自定义的RD协议:
- 基于UDP/TCP双协议设计,自适应网络环境
- 支持NAT穿透技术,通过ICE协议实现内网设备互通
- 采用AES-256-GCM加密算法保护通信内容
5.3 服务器架构
RustDesk服务器组件包括:
- ID服务器:负责设备身份注册与发现
- 中继服务器:在直连失败时提供数据中转服务
- WebRTC服务器:处理音视频流的转发
六、高级安装配置指南
6.1 自建服务器部署
以下是基于Ubuntu 22.04部署RustDesk服务器的完整流程:
# 1. 安装依赖
sudo apt update
sudo apt install -y docker.io docker-compose# 2. 创建工作目录
mkdir rustdesk-server && cd rustdesk-server# 3. 创建docker-compose.yml
cat > docker-compose.yml << EOF
version: '3'services:hbbs:container_name: hbbsimage: rustdesk/rustdesk-server:latestports:- 21115:21115- 21116:21116- 21116:21116/udp- 21118:21118volumes:- ./data:/rootcommand: hbbs -r <你的公网IP或域名>:21117networks:- rustdesk-nethbbr:container_name: hbbrimage: rustdesk/rustdesk-server:latestports:- 21117:21117- 21119:21119volumes:- ./data:/rootcommand: hbbrnetworks:- rustdesk-netnetworks:rustdesk-net:
EOF# 4. 启动服务
docker-compose up -d# 5. 验证服务状态
docker-compose ps
6.2 客户端高级配置
修改客户端配置文件~/.config/rustdesk/config.toml
:
[network]
# 指定自定义ID服务器
relay_server = "your-server-ip:21117"
# 指定自定义中继服务器
rendezvous_server = "your-server-ip:21116"[ui]
# 启用暗黑模式
dark_mode = true
# 设置字体大小
font_size = 14[security]
# 启用双因素认证
two_factor_auth = true
# 设置会话超时时间(秒)
idle_timeout = 3600
七、高级功能实战
7.1 多因素认证配置
RustDesk支持TOTP双因素认证:
- 在客户端界面点击"设置" > “安全”
- 启用"双因素认证"
- 使用Google Authenticator扫描二维码
- 输入生成的6位验证码完成绑定
7.2 自定义插件开发
RustDesk提供了插件开发接口,以下是一个简单的文件管理器插件示例:
use flutter_rust_bridge::*;// 定义插件接口
#[flutter_plugin]
pub mod file_manager_plugin {// 获取文件列表#[method]pub fn list_files(path: String) -> Result<Vec<String>> {let dir = std::fs::read_dir(path)?;let files = dir.filter_map(Result::ok).map(|entry| entry.file_name().to_string_lossy().into_owned()).collect();Ok(files)}// 读取文件内容#[method]pub fn read_file(path: String) -> Result<String> {std::fs::read_to_string(path)}
}
7.3 脚本自动化操作
使用RustDesk API编写自动化脚本:
import rustdesk_api# 连接到RustDesk服务
client = rustdesk_api.Client("localhost:3000")# 登录账户
client.login("your_username", "your_password")# 获取在线设备列表
devices = client.get_online_devices()# 远程控制第一个设备
if devices:session = client.start_remote_session(devices[0].id)# 执行一系列操作session.send_key("A")session.send_text("Hello from automation!")session.take_screenshot("screenshot.png")# 关闭会话session.close()
八、性能优化与故障排除
8.1 网络优化策略
- 对于高延迟网络,建议启用"带宽优先"模式
- 在中继服务器上配置BBR拥塞控制:
echo "net.core.default_qdisc=fq" | sudo tee -a /etc/sysctl.conf echo "net.ipv4.tcp_congestion_control=bbr" | sudo tee -a /etc/sysctl.conf sudo sysctl -p
8.2 常见故障排除
问题现象 | 可能原因 | 解决方法 |
---|---|---|
无法连接远程设备 | 防火墙阻止 | 开放21115-21119端口 |
画面延迟高 | 编码参数不合适 | 在设置中降低分辨率和帧率 |
文件传输失败 | 中继服务器过载 | 增加中继服务器数量 |
8.3 性能监控
使用Prometheus和Grafana监控RustDesk服务器性能:
# prometheus.yml配置
scrape_configs:- job_name: 'rustdesk'static_configs:- targets: ['rustdesk-server:9090']
九、企业级部署方案
9.1 混合云部署架构
对于企业用户,推荐采用混合云部署模式:
- 在企业内网部署专用中继服务器
- 关键部门使用专用ID服务器
- 分支机构通过VPN连接到企业中心
9.2 安全审计方案
RustDesk支持详细的日志记录:
[logging]
# 日志级别: error, warn, info, debug, trace
level = "info"
# 日志文件位置
file = "/var/log/rustdesk.log"
# 启用审计日志
audit_log = true
9.3 用户权限管理
通过LDAP/Active Directory集成实现企业级用户管理:
- 在设置中启用LDAP认证
- 配置LDAP服务器地址和端口
- 设置用户搜索基准DN
- 映射RustDesk角色到LDAP组
十、社区与贡献
RustDesk 欢迎来自世界各地的贡献。如果你想为项目做出贡献,可以阅读 docs/CONTRIBUTING.md
文件获取帮助。同时,你可以通过以下渠道与开发者和其他用户进行交流:
- Discord
希望重新编号后的内容能满足你的需求。如果还有其他问题,请随时告诉我。
相关文章:

RustDesk:开源电脑远程控制软件
RustDesk:开源电脑远程控制软件 RustDesk:开源电脑远程控制软件一、RustDesk 简介二、下载教程2.1 桌面版下载2.2 Android 版下载 三、安装教程3.1 桌面版安装 四、功能讲解4.1 远程控制4.2 文件传输4.3 安全可靠4.4 自定义服务器 五、RustDesk技术架构解…...

[操作系统] 策略模式进行日志模块设计
文章目录 [toc]一、什么是设计模式?二、日志系统的基本构成三、策略模式在日志系统中的落地实现✦ 1. 策略基类 LogStrategy✦ 2. 具体策略类▸ 控制台输出:ConsoleLogStrategy▸ 文件输出:FileLogStrategy 四、日志等级枚举与转换函数五、日…...
掌握Docker Commit:轻松创建自定义镜像
使用 docker commit 命令可以通过对现有容器进行修改来创建新的镜像。-a 选项用于指定作者信息,-m 选项用于添加提交信息。以下是具体步骤: 启动并修改容器 启动一个容器并进行必要的修改。例如,启动一个 Ubuntu 容器并安装一些软件包&…...

MoonBit正式入驻GitCode!AI时代的编程语言新星,开启高性能开发新纪元
在AI与编程语言深度交融的今天,开发者们正见证一场技术生产力的革命。由IDEA研究院基础软件中心倾力打造的MoonBit(月兔)编程语言,自2023年横空出世以来,凭借高性能、低延迟、轻量化的特性,迅速成为全球开发…...
命令行快速上传文件到SFTP服务器(附参考示例)
一、SFTP基础命令格式 更新参数后的标准命令格式为: sftp -P [端口号] [用户名][服务器IP]:[远程路径] <<< $put [本地文件路径]二、新参数实例解析 使用新连接参数的完整命令示例: sftp -P 30033 test_jigou_sftp121.199.64.216:/download…...

关于vue学习的经常性错误
目录 常见问题: 1关于引用本地下载es6模块文件,报404错误 2 使用createApp函数后没有调用mount函数挂载到浏览器 3 在mount函数中,忘记引用插值表达式所在标签的定位符如 标签选择器,类选择器等 4在直接使用Vue3函数时&#…...
数据结构与算法-双向链表专题
目录 一. 双向链表的结构 二.双向链表的使用 2.1 创建节点 2.2 初始化 2.3 打印 2.4 尾插 2.5 头插 2.6 尾删 2.7 头删 2.8 在指定位置pos之后插入数据 2.9 查找数据 2.10 删除pos位置的节点 2.11 销毁链表 一. 双向链表的结构 在List.h的头文件中对链表的结构进行创建 #prag…...
AtCoder Beginner Contest 403
再来一场atCoder,这一场简直血虐,让你回忆起了审题的重要性 A - Odd Position Sum 思路:题意很简单,求一个数组奇数位上数字和。很简单的问题,但你如果不仔细审题,就会浪费大量的时间 /* Author Owen_Q…...

关于 Golang GC 机制的一些细节:什么是根对象?GC 机制的触发时机?
文章目录 关于 Golang GC 机制的一些细节:什么是根对象?GC 机制的触发时机?简要回顾 Golang GC 三色标记法的工作流程什么是根对象?GC 的触发时机? 关于 Golang GC 机制的一些细节:什么是根对象?…...

Python笔记:c++内嵌python,c++主窗口如何传递给脚本中的QDialog,使用的是pybind11
1. 问题描述 用的是python 3.8.20, qt版本使用的是5.15.2, PySide的版本是5.15.2, pybind11的版本为2.13.6 网上说在python脚本中直接用PySide2自带的QWinWidget,如from PySide2.QtWinExtras import QWinWidget,但我用的版本中说没有QWinWidget&#x…...
在Ubuntu24.04中配置开源直线特征提取软件DeepLSD
在Ubuntu24.04中配置开源直线特征提取软件DeepLSD 本文提供在Ubuntu24.04中配置开源直线特征提取软件DeepLSD的基础环境配置、列出需要修改的文件内容,以及报错解决方案集锦。 基础的编译安装环境 python3.8.12CUDA12gcc/g 9.5(系统自带的g-13版本太新…...

C++效率掌握之STL库:map set底层剖析及迭代器万字详解
文章目录 1.map、set的基本结构2.map、set模拟实现2.1 初步定义2.2 仿函数实现2.3 Find功能实现2.4 迭代器初步功能实现2.4.1 运算符重载2.4.2 --运算符重载2.4.3 *运算符重载2.4.4 ->运算符重载2.4.5 !运算符重载2.4.6 begin()2.4.7 end() 2.5 迭代器进阶功能实现2.5.1 set…...

新三消示例项目《Gem Hunter》中的光照和视觉效果
《Gem Hunter》是 Unity 的全新官方示例项目,展示了如何在 Unity 2022 LTS 使用通用渲染管线 (URP) 打造抢眼的光效和视效,让 2D 益智/三消游戏在竞争中脱颖而出。 下载示例项目及其说明文档。准备潜入清澈湛蓝的海水中探寻财富吧,因为那里到…...
通用软件项目技术报告 - 导读III
现在,我们正式进入报告的第六个主要领域:6. 领域六:与第三方服务/API 集成 (含 LLM API)。 连接: 在现代软件开发中,很少有应用程序是完全孤立的。我们经常需要与各种外部的第三方服务或 API 进行集成,以利用它们提供的特定功能(如支付处理、地图服务、社交媒体登录、云…...
代码随想录训练营第二十三天| 572.另一颗树的子树 104.二叉树的最大深度 559.N叉树的最大深度 111.二叉树的最小深度
572.另一颗树的子树: 状态:已做出 思路: 这道题目当时第一时间不是想到利用100.相同的树思路来解决,而是先想到了使用kmp,不过这个题目官方题解确实是有kmp解法的,我使用的暴力解法,kmp的大致思…...

单向循环链表C语言实现实现(全)
#include<stdio.h> #include<stdlib.h> #define TRUE 1 #define FASLE 0//定义宏标识判断是否成功 typedef struct Node {int data;struct Node* next; }Node;Node* InitList() {Node* list (Node*)malloc(sizeof(Node));list->data 0;//创建节点保存datalist…...

【AI大模型】赋能【传统业务】
在数字化转型的浪潮下,传统业务流程(如通知公告管理、文档处理等)仍依赖人工操作,面临效率低、成本高、易出错等问题。以企业通知公告为例,从内容撰写、摘要提炼到信息分发,需耗费大量人力与时间࿰…...
Clion内置宏$PROJECT_DIR$等
CLion 内置宏 文章目录 CLion 内置宏通用路径相关宏路径相对化宏 官方文档地址: https://www.jetbrains.com/help/clion/built-in-macros.html 通用路径相关宏 宏名称含义说明示例$WORKSPACE_DIR$当前项目所属的工作区根目录路径。/home/user/workspace$PROJECT_D…...

团结引擎开源车模 Sample 发布:光照渲染优化 动态交互全面体验升级
光照、材质与交互效果的精细控制,通常意味着复杂的技术挑战,但借助 Shader Graph 14.1.0(已内置在团结引擎官方 1.5.0 版本中),这一切都变得简单易用。通过最新团结引擎官方车模 Sample,开发者能切身感受到全新光照优化与编辑功能…...
hghac8008漏洞扫描处理
文章目录 环境文档用途详细信息相关文档 环境 系统平台:Linux x86-64 Red Hat Enterprise Linux 7 版本:4.5.10 文档用途 本文只要用于在客户提出hghac8008端口漏洞时,如何进行漏洞处理,本文章的方法已经应用于浪潮云ÿ…...
PyQt5教程:QComboBox下拉列表框的全面解析与实战应用
QComboBox概述 QComboBox是PyQt5中一个集按钮和下拉选项于一体的控件,通常被称为下拉列表框或组合框。它允许用户从预定义的选项列表中选择一个值,是GUI开发中最常用的输入控件之一。 主要特点: 紧凑的界面设计,节省屏幕空间提…...
GAN简读
Abstract 我们提出了一个通过同时训练两个模型的对抗过程来评估生成模型的新框架:一个生成模型 G G G用来捕捉数据特征,还有一个用于估计这个样本是来自训练样本还是 G G G的概率的判别模型 D D D, G G G的训练过程是最大化 D D D犯错的概率。这个框架就相当于一个minimax tw…...

精准测量“双雄会”:品致与麦科信光隔离探头谁更胜一筹
在电子技术飞速发展的当下,每一次精准测量都如同为科技大厦添砖加瓦。光隔离探头作为测量领域的关键角色,能有效隔绝电气干扰,保障测量安全与精准。在众多品牌中,PINTECH品致与麦科信的光隔离探头脱颖而出,成为工程师们…...

NSSCTF [HNCTF 2022 WEEK4]
题解前的吐槽:紧拖慢拖还是在前段时间开始学了堆的UAF(虽然栈还没学明白,都好难[擦汗]),一直觉得学的懵懵懂懂,不太敢发题解,这题算是入堆题后一段时间的学习成果,有什么问题各位师傅可以提出来,…...
Step1
项目 SchedulerSim 已搭建完成 ✅ ⸻ ✅ 你现在拥有的: • 🔧 两种调度器(Round Robin SJF) • 📦 模拟进程类 Process • 🧱 清晰结构:OOP 风格 便于扩展 • ✍️ 主函数已演示调度器运行效…...

tornado_登录页面(案例)
目录 1.基础知识编辑 2.脚手架(模版) 3.登录流程图(processon) 4.登录表单 4.1后(返回值)任何值:username/password (4.1.1)app.py (4.1.2ÿ…...

YOLOv12模型部署(保姆级)
一、下载YOLOv12源码 1.通过网盘分享的文件:YOLOv12 链接: https://pan.baidu.com/s/12-DEbWx1Gu7dC-ehIIaKtQ 提取码: sgqy (网盘下载) 2.进入github克隆YOLOv12源码包 二、安装Anaconda/pycharm 点击获取官网链接(anaconda) 点击获取…...

BGP实验练习1
需求: 要求五台路由器的环回地址均可以相互访问 需求分析: 1.图中存在五个路由器 AR1、AR2、AR3、AR4、AR5,分属不同自治系统(AS),AR1 在 AS 100,AR2 - AR4 在 AS 200,AR5 在 AS …...
Three.js知识框架
一、Three.js 基础概念 1. Three.js 简介 是什么? 基于 WebGL 的 3D JavaScript 库,用于在浏览器中渲染 3D 场景。 核心优势 简化 WebGL 的复杂 API,提供高层封装。 跨平台(支持桌面和移动端)。 适用场景 3D 可视…...
AWS技术助力企业满足GDPR合规要求
GDPR(通用数据保护条例)作为欧盟严格的数据保护法规,给许多企业带来了合规挑战。本文将探讨如何利用AWS(亚马逊云服务)的相关技术来满足GDPR的核心要求,帮助企业实现数据保护合规。 一、GDPR核心要求概览 GDPR的主要目标是保护欧盟公民的个人数据和隐私权。其核心要求包括: 数…...