RustDesk 是一个强大的开源远程桌面软件,是中国开发者的作品,它使用 Rust 编程语言构建,提供安全、高效、跨平台的远程访问体验。可以说是目前全球最火的开源远程桌面软件了,GitHub 星星数量达到了惊人的 64k!

与 TeamViewer、ToDesk 等专有远程访问解决方案相比,RustDesk 作为一个开源软件,提供了几个显著的优势:

  1. RustDesk 完全免费使用,没有任何隐藏费用或订阅计划。
  2. 由于其开源特性,RustDesk 的代码是透明的,可以由社区审计,从而提供更高的安全性和可信度。
  3. RustDesk 使用 Rust 语言开发,从根本上确保了程序的内存安全和高性能。

然而现在有一个坏消息:由于被诈骗分子频繁使用,该项目现已暂停国内服务。

作者原话:

为了进一步应对诈骗,我们暂时决定停止中国地区的服务,如果用户现在通过公共服务器访问国内主机,将会收到被禁止的消息。

官网首页也挂出了警告信息:

作者在开源中国上发布了公告,主要是因为诈骗分子通过短信链接的方式让老人下载 App,然后实施手机银行的指挥操控,受害者被骗金额巨大,对家庭造成极大的损害。

为了进一步应对诈骗,他们暂时决定停止中国地区的服务,如果用户现在通过公共服务器访问国内主机,将会收到被禁止的消息

只能说很无奈。

好在 RustDesk 有一个很关键的特性就是它允许用户自建服务器,从而在使用 RustDesk 时获得更多的控制权和隐私保护。所谓自建服务器,也就是自建 ID Server 和 Relay Server,至于什么是 ID Server 和 Relay Server,下面我们会给大家详细介绍,并提供一步步的指南来帮助你设置自己的 ID Server 和 Relay Server。

RustDesk 架构概述

要理解自建服务器的重要性,首先需要对 RustDesk 的架构有一个全面的了解。RustDesk 采用了经典的客户端-服务器模型,其中涉及三个主要组件:RustDesk 客户端、RustDesk 服务器和 ID Server。

  1. 客户端-服务器模型

    在 RustDesk 的架构中,客户端是运行在用户设备 (如笔记本电脑、平板电脑或智能手机) 上的应用程序。它提供了一个图形界面,允许用户发起远程访问请求并与远程计算机进行交互。另一方面,服务器组件运行在要远程访问的目标计算机上。它负责监听来自客户端的连接请求,并在建立连接后向客户端发送屏幕更新和接收输入事件。

  2. ID Server 的角色

    ID Server 在 RustDesk 的生态系统中扮演着重要的角色。它的主要职责是促进客户端和服务器之间的初始连接建立。当 RustDesk 服务器启动时,它会连接到 ID Server 并注册自己,提供如服务器 ID 和公网 IP 地址等信息。类似地,当客户端想要连接到特定的 RustDesk 服务器时,它会向 ID Server 查询目标服务器的连接信息。

    ID Server 维护了一个已注册的 RustDesk 服务器目录,并充当客户端和服务器之间的中介,帮助它们建立直接的点对点 (P2P) 连接。一旦客户端从 ID Server 获得了服务器的连接信息,它就可以尝试直接连接到服务器,而无需进一步通过 ID Server 中继数据。

  3. Relay Server 的角色

    在某些网络环境下,RustDesk 客户端和服务器可能无法直接建立 P2P 连接,例如当它们位于 NAT (网络地址转换) 或防火墙后时。为了克服这一挑战,RustDesk 引入了 Relay Server。

    如果客户端无法直接连接到服务器,它会向 ID Server 请求一个 Relay Server。然后,客户端和服务器都连接到指定的 Relay Server,并通过它来中继所有的网络通信。Relay Server 在这种情况下充当客户端和服务器之间的桥梁,转发来自一方的数据包到另一方。

    值得注意的是,即使通过 Relay Server 进行通信,RustDesk 也会维护端到端加密,确保中继服务器无法访问明文数据。Relay Server 只是盲目地转发加密的数据包,而不能查看或修改其内容。

自建服务器

RustDesk ID Server 与 Relay Server 目前支持多种方式部署,可以在 Linux 和 Windows 中使用二进制直接部署,也可以使用 Docker 部署,具体可参考 RustDesk 的官方文档

如果您不想折腾,或者不懂什么 Docker 之类的,那也没关系,Sealos 应用商店提供了一键部署的应用模板,点一下鼠标即可完成部署,非常丝滑。

由于 RustDesk 是使用 Rust 编写的,所以非常高效,并发也很强,实际测试下来,1C1G 的配置就可以给一整个小型团队使用了。Sealos 的应用模板默认给了最小配置 0.2C128M,个人使用完全足够了。如果您需要给多个人使用,可以随时调整配置,因为 Sealos 是按量付费的,你想怎么调就怎么调,想什么时候调就什么时候调,非常酸爽。

我们再来看看大家比较关心的价格:

默认最小配置每天只需要 0.12 元,根据按量付费的机制我们还可以更省钱。所谓按量付费,就是用多少付多少,这里的 “用多少” 指的是你用了多少 CPU、内存、存储等资源,那么如果我不用的时候把它暂停,用的时候再启动,每天只需要 0.01 元 (因为暂停状态下不占用 CPU 和内存,只占用存储)。

如果你是整个团队在使用,不想频繁的暂停和启动,也可以通过别的办法来省钱,比如设置一个定时任务,白天开启,夜里暂停,也可以省一半的钱。

再加上外网端口的费用,每天预计花费在 0.1~0.2 元之间

好,说完了价格,如果你心动了,或者觉得可以一试,那么接着往下看教程。

直接打开 RustDesk 应用模板,然后点击右上角的 “去 Sealos 部署”。

如果您是第一次使用 Sealos,则需要注册登录 Sealos 公有云账号,登录之后会立即跳转到模板的部署页面。

跳转进来之后,你会看到有一个变量 ENCRYPTED_ONLY,你可以选择 1 或者 0。为了隐私和安全,强烈建议选择 1,这样就开启了强制加密,只允许建立加密连接,不容易被别人白嫖

设置完成后,点击右上角的 “部署应用” 开始部署,部署完成后,直接点击应用的 “详情” 进入该应用的详情页面。

点击 “日志” 按钮查看日志:

日志中可以找到两个关键信息:外网域名公钥。后面需要用到。

在 “应用商店”-> “我的应用” 中找到 RustDesk,点进去:

在 Others 中分别找到 21116 端口和 21117 端口映射的外网端口,21116 是 ID Server 的端口,21117 是 Relay Server 的端口。例如我这里的 ID Server 外网端口就是 30032,Relay Server 外网端口是 30325。

客户端设置

分别在控制端和被控制端的电脑安装 RustDesk,下载地址:https://rustdesk.com/zh/

安装完成后,打开 RustDesk,点击上面的三个点,进入配置:

找到网络配置:

先解锁网络设置,然后在 ID 服务器中输入你的 <外网域名>:<ID Server 外网端口>,在中继服务器中输入你的 <外网域名>:<Relay Server 外网端口>,在 Key 中输入你的公钥。

例如我这里的 ID 服务器就是 brffleiu.bja.sealos.run:30032,中继服务器是 brffleiu.bja.sealos.run:30325,Key 是 LNS+q8OA02k7CH+TbzO1EzikNYsFS52YiMNi3pmz56k=

最后点击 “应用” 就可以了。

️ 注意:控制端和被控制端都设置使用相同的 ID 服务器、中继服务器和 Key,才能正常进行远程控制。

总结

本文深入探讨了 RustDesk 的架构、自建 RustDesk 服务器(ID Server 和 Relay Server)的好处以及具体的自建步骤,虽然需要一点额外的工作,但收获了很多好处,比如安全性和隐私性。

随着远程工作和协作变得越来越普遍,拥有一个安全、高效、灵活的远程访问解决方案变得至关重要。通过自建 RustDesk ID Server 和 Relay Server,你可以获得一个量身定制的解决方案,以满足您独特的需求。

RustDesk 自建服务器部署和使用教程的更多相关文章

  1. 阿里云Linux服务器部署JDK8实战教程

    下载地址 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 文件上传 把下载的文 ...

  2. nodejs服务器部署教程四

    nodejs服务器部署最后一篇文章,部署ssl证书,升级http为https,其实网上相关教程有很多,但是略麻烦,本教程让你一切从简,5分钟搞定https,免费一年哦 申请ssl证书 免费申请的机构有 ...

  3. 分享阿里云推荐码 IC1L2A,购买服务器可以直接打9折,另附阿里云服务器部署ASP.NET MVC5关键教程

    阿里云推荐码为:IC1L2A 阿里云还是不错滴. 以windows server 2008 R2为例,介绍如何从全新的服务器部署MVC5 站点. 新购买的阿里云服务器是没有IIS的,要安装IIS: 控 ...

  4. 【云服务器部署】---Linux下安装MySQL

    [云服务器部署]---Linux下安装MySQL 有关如何阿里云ECS建网站,推荐一片文章,我是是通过这篇文章安装tomcat和jdk的 网址:阿里云ECS建网站(建站)超详细全套完整图文教程! 注意 ...

  5. SSM 项目从搭建爬坑到 CentOS 服务器部署 - 速查手册

    SSM 项目从搭建爬坑到 CentOS 服务器部署 - 速查手册 提示: (1)CSDN 博客左边有操作工具条上有文章目录 (2)SSM 指 Spring,Spring MVC,MyBatis Mav ...

  6. CentOS 5系统安装Django、Apache 、mod_wsgi部署Python环境教程

    Django,是一款针对Python环境的WEB开发框架,能够帮助我们构架快捷.简单的WEB框架设置,Django框架非常适合开发内容应用环境,所以在本文中,麦子将整理基于Centos系统部署安装Dj ...

  7. 使用openssl创建自签名证书及部署到IIS教程

    概要 本文讲解三个部分:1. 创建自签名证书2. 创建自己的证书颁发机构3. 以及如何配置IIS 创建自签名证书 首先,创建一个私钥文件: openssl genrsa -out myselfsign ...

  8. 【阿里云产品公测】阿里云ACE部署通用完整教程及评测

    [阿里云产品公测]阿里云ACE部署通用完整教程及评测 作者:阿里云用户bailimei ACE应该是目前在公测的服务中应用最广泛的一项服务.在公测云引擎ACE前曾使用过新浪SAE,而ACE给我的最初印 ...

  9. 详细的图文介绍如何利用XAMPP本地建站的环境配置教程

    原文:详细的图文介绍如何利用XAMPP本地建站的环境配置教程 WordPress 是一个简便快捷,用途广,人气旺的一个开源的博客建站程序.很有很多等您去发现. 简便快捷:在性能上易于操作.易于浏览: ...

  10. 【北航软件工程】Alpha阶段前端页面编写及服务器部署

    前端页面编写 虽然之前对html语法有过一些了解,但是完全没有编写前端页面的经验,和我合作的czy大概也是这么个情况.在Alpha阶段的前端页面编写过程中,我们是摸着石头过河,html是个入门很快专精 ...

随机推荐

  1. javascript雪花算法ID生成库simple-flakeid

    开源地址:https://github.com/zhupengfeivip/simple-flakeId ​ 核心算法版权属于 yitter](https://github.com/yitter)) ...

  2. 使用 Nginx 在服务器上搭建一个 Xooxle 镜像站

    配置目标 期望能够通过 xooxle.example.com 访问 www.xooxle.com. 配置 DNS 配置地址:「DNS 解析 DNSPod」->「域名」->「解析」-> ...

  3. C 语言入门:如何编写 Hello World

    C 语言简介 C 语言是由 Dennis Ritchie 于 1972 年在贝尔实验室创建的一种通用编程语言.尽管年代久远,它仍然是一款非常流行的语言.它之所以受欢迎的主要原因是它是计算机科学领域的基 ...

  4. C++读取配置文件ini

    一.设置 ini 保存位置 // 保存到 appdata 中 LPCWSTR GetIniPath() { WCHAR buffer[MAX_PATH]; BOOL result = SHGetSpe ...

  5. openGauss3.1.0企业版HA环境部署测试

    前言 openGauss 是华为开源的一款高性能关系型数据库,这两年感觉 pg 系的数据库在国内慢慢火起来了,pg 的操作还是跟 mysql 和 oracle 略有差距,还得慢慢学,先从部署开始吧.对 ...

  6. 报表的 SQL 注入风险是什么意思?如何防范?

    啥是 SQL 注入风险? 数据库要执行 SQL 访问数据,数据库是个执行机构,它只会检查传来的 SQL 是不是合乎语法,而并不会关心这个语句是否会造成伤害(数据泄露或破坏).正因为只要符合语法规则就会 ...

  7. Elasticsearch数据同步优化

    Elasticsearch数据同步优化 背景 为了满足项目需求,需要将大量数据的数据写入到ES进行检索,预估数据量是40亿左右,目前需要同步进去的是2亿左右. ES集群配置 三台128G的国产服务器 ...

  8. 布匹瑕疵检测数据集EDA分析

    分析数据集中 train 集的每个类别的 bboxes 数量分布情况.因为训练集分了两个:train1,train2.先根据两个数据集的 anno_train.json 文件分析类别分布.数据集:布匹 ...

  9. 英文A+B

    A+B 题目描述 读入两个小于100的正整数A和B,计算A+B. 需要注意的是:A和B的每一位数字由对应的英文单词给出. 输入描述: 测试输入包含若干测试用例,每个测试用例占一行,格式为"A ...

  10. 重磅官宣:Nacos2.0 发布,性能提升 10 倍

    简介: 继 Nacos 1.0 发布以来,Nacos 迅速被成千上万家企业采用,并构建起强大的生态.但是随着用户深入使用,逐渐暴露一些性能问题,因此我们启动了 Nacos 2.0 的隔代产品设计,时隔 ...