当前位置: 首页 > news >正文

开源远程桌面软件_RustDesk_(可自建远程桌面服务器)

一、需求说明

1.1、现状描述

    在公司的日常运维过程中,我们首先需要保证的就是设备的网络安全和数据安全;而有时候我们需要让其他人进行维护指定服务器软件等内容的时候,不希望让他人直接使用服务器的账号密码直接登陆;而是通过远程桌面软件进行连接操作;目前常见远程控制软件有向日葵、ToDesk、AnyDesk、VNC、 DameWare、AirDroid等;但是这些远程控制软件不是需要付费就是免费版有使用限制(网速、连接数量等限制),且会经过软件服务商的服务器数据安全无法保证。

1.2、RustDesk简介

    RustDesk | 开源远程桌面软件是国人开发的一个远程控制软件的项目;且所有代码都在github上开源,你可以自行查看项目源码,了解项目内容;且还可以自己搭建该远程桌面的服务器(也可以使用官方提供的);数据安全由你掌握;

RustDesk特点
序号说明
1采用rust语言编写,无需任何配置开箱即用,支持多平台(Windows, macOS, Linux, iOS, Android, 网页版都可以工作)
2先尝试打洞直连,不行再由服务器转发(可自动适应可用带宽,无限制,延迟超低)
3采用TLS 1.3端到端加密协议保护用户的通信安全,用户可以完全掌控数据,不用担心安全问题
4自定义画面质量且允许用户在客户端程序里调节bitrate和quantizer改变画面传输质量(并且没有任何弹窗等商业推广行为)
5RustDesk远程控制软件内置文件传输和TCP隧道功能,使用内置文件管理器可以方便地与远程电脑互传文件,设置TCP隧道也很容易,更是贴心提供了快捷RDP模式,一键就可以实现基于TCP隧道的RDP连接,安全快速稳定
6支持自建远程连接中心服务器
7内网IP直连
8可以直接使用源码开发属于自己的版本

1.3、RustDesk源码和官网

 RustDesk项目国内源码地址icon-default.png?t=M85Bhttps://gitee.com/mirrors/rustdesk

RustDesk | 开源远程桌面软件【官网】icon-default.png?t=M85Bhttps://rustdesk.com/zh/ 

二、群晖Docker上搭建中继服务器

自建服务器 :: RustDesk文档icon-default.png?t=M85Bhttps://rustdesk.com/docs/zh-cn/self-host/

2.1、安装Docker

点击【套件中心】-->【所有套件】-->【Docker】如果还没有安装则点击【安装套件】等待安装完成即可。

 

2.2、在Docker中下载RustDesk Server镜像

    打开Docker-->选择【注册表】在输入框中输入【RustDesk-Server】后点击【搜索】后选择【rustdesk/rustdesk-server】源双击下载镜像,如下图所示:

 

2.3、配置RustDesk Server的hbbs、hbbr容器

安装 :: RustDesk文档icon-default.png?t=M85Bhttps://rustdesk.com/docs/zh-cn/self-host/install/群晖 :: RustDesk文档icon-default.png?t=M85Bhttps://rustdesk.com/docs/zh-cn/self-host/synogy/

2.3.1、配置hbbs容器为rustdesk的注册服务器

hbbs即【RustDesk ID/Rendezvous server】是注册服务器
序号说明
1默认情况下,hbbs 监听21115(tcp), 21116(tcp/udp), 21118(tcp)务必在防火墙开启这几个端口
221115是hbbs用作NAT类型测试
321116/UDP是hbbs用作ID注册与心跳服务
421116/TCP是hbbs用作TCP打洞与连接服务
521118是为了支持网页客户端使用websocket协议
6请注意21116同时要开启TCP和UDP;
7
  • TCP(21115, 21116, 21117, 21118, 21119)
  • UDP(21116)
8如果您不需要网页客户端(21118,21119)支持,对应端口可以不开。

    选择【映像】-->选中【rustdesk/rustdesk-server:latest】-->点击【启动】按钮进行配置hbbs容器:

我这里选择将hbbs的生成的key等相关文件都放置在群晖的【docker/rustdesk/hbbs】目录下 

 在环境下输入命令【hbbs - r 群晖服务器的ip地址(或者是你的外网IPV4地址)】;我这里使用我的群晖内网地址:192.168.3.131,如下图所示:

 点击【应用】按钮后查看【docker/rustdesk/hbbs】 目录下是否生成私钥公钥和对应的数据库文件内容,如下图所示则表示配置正确。

2.3.2、配置hbbr容器为rustdesk的中继服务器

hbbr即【RustDesk relay server】是RustDesk 中继服务器
序号说明
1默认情况下,hbbr 监听21117(tcp), 21119(tcp)
221117是hbbr用作中继服务
321119是为了支持网页客户端
4如果您不需要网页客户端(21118,21119)支持,对应端口可以不开。

 可以安装《2.3.1、配置hbbs容器为rustdesk的注册服务器》的步骤配置hbbr容器,只是注意一点在配置hbbr容器的【高级设置】-->【环境】下的命令只用输入【hbbr】后点击【应用】后点击

 

 

 最后可以查看到hbbs和hbbr容器都在运行即可

 

三、安装使用RustDesk客户端

使用手册 :: RustDesk文档icon-default.png?t=M85Bhttps://rustdesk.com/docs/zh-cn/manual/以在Windows系统上安装RustDesk客户端和使用为例进行说明

3.1、下载Windows系统的RustDesk客户端

RustDesk | 开源远程桌面软件icon-default.png?t=M85Bhttps://rustdesk.com/zh/

将下载的压缩文件加压后双击打开即可安装,如下图所示:

 这是关于RustDesk客户端界面的功能介绍

 3.2、设置客户端的中继服务器免费公共服务器

docs/README-ZH.md · Gitee 极速下载/rustdesk - Gitee.comicon-default.png?t=M85Bhttps://gitee.com/mirrors/rustdesk/blob/master/docs/README-ZH.md

    以下是您可以使用的、免费的、会随时更新的公共服务器列表,在国内也许网速会很慢或者无法访问。

  • 首尔, AWS lightsail, 1 VCPU/0.5G RAM
  • 新加坡, Vultr, 1 VCPU/1G RAM
  • 达拉斯, Vultr, 1 VCPU/1G RAM
  • 德国, Codext, 2 VCPU / 4GB RAM
  • 德国, Hetzner, 4 VCPU / 8GB RAM

3.2.1、未加密直接远程连接设置

 3.2.2、加密远程连接设置

①到自建服务器上下载公钥文件

②将下载好的公钥文件使用记事本打开将内容复制到中继器的KEY输入框后点击【确认】按钮,如下图所示:

 

3.3、测试

    在其他Windows电脑上也按照 【3.1、下载Windows系统的RustDesk客户端】和【 3.2、设置客户端的中继服务器】后,直接在rustdesk的【输入对方ID】里输入ID后点击【连接】即可连接到对方电脑上进行远程控制操作;如下图所示:

相关文章:

  • 【Django框架】——11 Django模型——02创建模型类
  • 【考研】暨南大学 848 操作系统简答题(2020-2022)
  • docker-compose部署hive、kafka服务
  • @Import注解详解
  • 基于springboot+vue的美食分享网站
  • 动态规划-斐波拉契数列笔记
  • 农民工学CSAPP题目解析-前篇题目解答以及答疑总结
  • HBase系列从入门到精通(二)
  • libusb系列-002-Windows下libusb源码编译
  • 【C++ 科学计算】C++ 矩阵操作运算符
  • 全排列笔记
  • Python环境变量与引包错误
  • Mysql内置函数整理--基础类型函数
  • 万字爽文一篇带你掌握Java8新特性
  • Node.js的Web后端开发调研
  • android图片蒙层
  • Django 博客开发教程 8 - 博客文章详情页
  • overflow: hidden IE7无效
  • Redis 中的布隆过滤器
  • Shadow DOM 内部构造及如何构建独立组件
  • 计算机常识 - 收藏集 - 掘金
  • 力扣(LeetCode)357
  • 普通函数和构造函数的区别
  • 事件委托的小应用
  • 推荐一个React的管理后台框架
  • 微服务核心架构梳理
  • 微信公众号开发小记——5.python微信红包
  • 再次简单明了总结flex布局,一看就懂...
  • - 转 Ext2.0 form使用实例
  • Nginx实现动静分离
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • ​Spring Boot 分片上传文件
  • ​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​
  • #define、const、typedef的差别
  • (10)ATF MMU转换表
  • (AtCoder Beginner Contest 340) -- F - S = 1 -- 题解
  • (java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~
  • (附源码)spring boot车辆管理系统 毕业设计 031034
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (三)Honghu Cloud云架构一定时调度平台
  • (轉貼) 2008 Altera 亞洲創新大賽 台灣學生成果傲視全球 [照片花絮] (SOC) (News)
  • ***监测系统的构建(chkrootkit )
  • .NET Core跨平台微服务学习资源
  • .net中生成excel后调整宽度
  • @Autowired @Resource @Qualifier的区别
  • @manytomany 保存后数据被删除_[Windows] 数据恢复软件RStudio v8.14.179675 便携特别版...
  • [【JSON2WEB】 13 基于REST2SQL 和 Amis 的 SQL 查询分析器
  • [AIGC] Spring Interceptor 拦截器详解
  • [BUUCTF]-PWN:wustctf2020_number_game解析(补码,整数漏洞)
  • [BZOJ 4598][Sdoi2016]模式字符串
  • [codevs1288] 埃及分数
  • [IE6 only]关于Flash/Flex,返回数据产生流错误Error #2032的解决方式
  • [IE编程] WebBrowser控件的多页面浏览(Tabbed Browsing)开发接口
  • [leetcode]_String to Integer (atoi)
  • [MySQL]视图索引以及连接查询案列