一、需求说明
1.1、现状描述
在公司的日常运维过程中,我们首先需要保证的就是设备的网络安全和数据安全;而有时候我们需要让其他人进行维护指定服务器软件等内容的时候,不希望让他人直接使用服务器的账号密码直接登陆;而是通过远程桌面软件进行连接操作;目前常见远程控制软件有向日葵、ToDesk、AnyDesk、VNC、 DameWare、AirDroid等;但是这些远程控制软件不是需要付费就是免费版有使用限制(网速、连接数量等限制),且会经过软件服务商的服务器数据安全无法保证。
1.2、RustDesk简介
RustDesk | 开源远程桌面软件是国人开发的一个远程控制软件的项目;且所有代码都在github上开源,你可以自行查看项目源码,了解项目内容;且还可以自己搭建该远程桌面的服务器(也可以使用官方提供的);数据安全由你掌握;
序号 | 说明 |
1 | 采用rust语言编写,无需任何配置开箱即用,支持多平台(Windows, macOS, Linux, iOS, Android, 网页版都可以工作) |
2 | 先尝试打洞直连,不行再由服务器转发(可自动适应可用带宽,无限制,延迟超低) |
3 | 采用TLS 1.3端到端加密协议保护用户的通信安全,用户可以完全掌控数据,不用担心安全问题 |
4 | 自定义画面质量且允许用户在客户端程序里调节bitrate和quantizer改变画面传输质量(并且没有任何弹窗等商业推广行为) |
5 | RustDesk远程控制软件内置文件传输和TCP隧道功能,使用内置文件管理器可以方便地与远程电脑互传文件,设置TCP隧道也很容易,更是贴心提供了快捷RDP模式,一键就可以实现基于TCP隧道的RDP连接,安全快速稳定 |
6 | 支持自建远程连接中心服务器 |
7 | 内网IP直连 |
8 | 可以直接使用源码开发属于自己的版本 |
1.3、RustDesk源码和官网
RustDesk项目国内源码地址https://gitee.com/mirrors/rustdesk
RustDesk | 开源远程桌面软件【官网】https://rustdesk.com/zh/
二、群晖Docker上搭建中继服务器
自建服务器 :: RustDesk文档https://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文档https://rustdesk.com/docs/zh-cn/self-host/install/群晖 :: RustDesk文档https://rustdesk.com/docs/zh-cn/self-host/synogy/
2.3.1、配置hbbs容器为rustdesk的注册服务器
序号 | 说明 |
1 | 默认情况下,hbbs 监听21115(tcp), 21116(tcp/udp), 21118(tcp)务必在防火墙开启这几个端口 |
2 | 21115是hbbs用作NAT类型测试 |
3 | 21116/UDP是hbbs用作ID注册与心跳服务 |
4 | 21116/TCP是hbbs用作TCP打洞与连接服务 |
5 | 21118是为了支持网页客户端使用websocket协议 |
6 | 请注意21116同时要开启TCP和UDP; |
7 |
|
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的中继服务器
序号 | 说明 |
1 | 默认情况下,hbbr 监听21117(tcp), 21119(tcp) |
2 | 21117是hbbr用作中继服务 |
3 | 21119是为了支持网页客户端 |
4 | 如果您不需要网页客户端(21118,21119)支持,对应端口可以不开。 |
可以安装《2.3.1、配置hbbs容器为rustdesk的注册服务器》的步骤配置hbbr容器,只是注意一点在配置hbbr容器的【高级设置】-->【环境】下的命令只用输入【hbbr】后点击【应用】后点击
最后可以查看到hbbs和hbbr容器都在运行即可
三、安装使用RustDesk客户端
使用手册 :: RustDesk文档https://rustdesk.com/docs/zh-cn/manual/以在Windows系统上安装RustDesk客户端和使用为例进行说明
3.1、下载Windows系统的RustDesk客户端
RustDesk | 开源远程桌面软件https://rustdesk.com/zh/
将下载的压缩文件加压后双击打开即可安装,如下图所示:
这是关于RustDesk客户端界面的功能介绍
3.2、设置客户端的中继服务器免费公共服务器
以下是您可以使用的、免费的、会随时更新的公共服务器列表,在国内也许网速会很慢或者无法访问。
- 首尔, 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后点击【连接】即可连接到对方电脑上进行远程控制操作;如下图所示: