每个人或多或少都使用过远程桌面软件,比如QQ远程协助、向日葵、ToDesk、TeamViewer等,
去年老宁也写过这款开源的远程桌面软件 RustDesk,不过那时候 RustDesk Server 的搭建步骤比较繁琐,客户端使用也十分不方便。
由于 RustDesk 优化了很多内容,所以这次重新在群晖搭建 RustDesk 服务。最重要的是不用像以前一样创建多个的容器,还可以编译自己的专属客户端,发送给家人朋友无需密码,开箱即用。最重要的是免费、安全、无限制!
项目地址
介绍
RustDesk 项目可以分为两个部分,服务端和客户端。 服务端必须部署在一台NAS或24小时不关机的服务器上,这样才能保证为客户端提供服务。

既然它们是分开的,我们自然也可以单独下载客户端,再连接别人的服务器地址,使用别人的搭建好的服务端。由于被诈骗分子频繁使用,所以 RustDesk 项目现已暂停国内服务,不过我们可以在群晖NAS上搭建一个属于自己的服务端,供自己、家人使用;如果搭建在公司的群晖,那么员工也可以一起用。
服务端
这次直接使用服务端https://github.com/rustdesk/rustdesk-server基于S6的镜像进行搭建,所以不用构建两个容器,它会自己帮我们管理 RustDesk 的ID服务和中继服务。
🔻 打开群晖的File Station套件,新建rustdesk文件夹,并创建子文件夹data用以存放容器数据。

🔻 右键data文件,复制文件属性中的路径。

🔻 根据S6的docker-compose配置文件,修改volumes的宿主机路径为前面data的路径 /volume1/test/rustdesk/data。
version: '3'
services:
rustdesk-server:
container_name: rustdesk-server
ports:
- 21115:21115
- 21116:21116
- 21116:21116/udp
- 21117:21117
- 21118:21118
- 21119:21119
image: rustdesk/rustdesk-server-s6:latest
environment:
- "RELAY=rustdesk.example.com:21117"
- "ENCRYPTED_ONLY=1"
volumes:
- /volume1/test/rustdesk/data:/data
restart: unless-stopped🔻 打开群晖Container Manager,新增一个名为rustdesk的项目,选择前面创建的rustdesk文件夹,并把docker-compose配置粘贴进去。(注意路径和来源)

🔻 点击下一步后等待容器构建。

🔻 可以在容器选项中看到 rustdesk-server 的状态为绿色,代表构建成功。

DDNS
为了照顾没有域名的小伙伴,这里使用群晖默认的DDNS服务。如果你对DDNS没有任何概念,可以看我的这篇文章。
🔻 配置完群晖DDNS后,需要确保DDNS的状态显示为正常。

🔻 接着需要到路由器中配置端口转发,把21116、21117的端口映射出来。(21116需要TCP、UDP协议,21117需要TCP,这里为了简便把它们的UDP都映射出来了)

其他的21115、21118目前都用不上,可以不用映射。至此 RustDesk 的服务配置全部完成。
客户端
🔻 RustDesk 也提供了各个平台的客户端 https://github.com/rustdesk/rustdesk/releases。

下载安装客户端后,需要对 RustDesk 进行配置,让它连接上前面搭建的服务端。
🔻 ID服务器地址为前面DDNS的域名加上端口转发的21116端口,中继服务器的域名和ID服务器的域名一致,只是端口不同。(例如:laoning.myds.me:21116)

🔻 Key 则是data目录下的pub文件内容。(下载下来用文本编辑器打开)

🔻 配置完成后,首页显示就绪状态代表连接成功。

🔻 最后进行测试。在其他平台上安装配置 RustDesk 客户端后,可以用电脑直接进行控制。

后记
目前,我们可以通过 RustDesk 客户端远程控制连接同一服务端的其他客户端,但每次都需要手动配置服务器地址和密钥,稍显繁琐,还可能暴露服务器信息和密钥,存在安全隐患。
有其他方案解决这些问题吗? RustDesk 作为一个开源项目,就意味着我们可以修改它的源码,最简单的办法就是服务端的配置编译到客户端中,后面下载使用自己的编译好的专属客户端就无需配置这些信息了,开箱即用。
由于篇幅的限制,我们下期再说,敬请期待。