搭建自己的全平台远程桌面服务 RustDesk搭建教程

搭建自己的全平台远程桌面服务 RustDesk搭建教程

hash070 9,522 2022-07-02

简介

RustDesk是一款开箱即用的开源免费的全平台远程桌面软件,包括MacOSWindowsAndroid的客户端支持。它可以替代类似于向日葵远程桌面ToDesk等远程桌面服务,这可以让你完全掌控数据,不用担心安全问题。你可以选择使用官方的注册/中继服务器,也可以自建服务器,甚至基于官方代码开发自己的版本。

GitHub官方仓库地址:https://github.com/rustdesk/rustdesk

官方网站地址:https://rustdesk.com

部署服务

环境准备

服务器需要有安装Docker和DockerCompose环境

如果你没有安装,可以看我的这篇文章:https://www.hash070.top/archives/docker-and-docker-compose-install.html

创建数据存放目录与docker-compose描述文件

首先创建一个全新的目录,专门用于存放rustdesk的数据文件。

这里假设我们创建了一个名为rustdesk的文件夹,专门存放该容器的数据文件。

mkdir rustdesk
cd rustdesk

然后使用vim创建并填写docker-compose描述文件。

vim docker-compopse.yml

向这个文件中写入如下文本

version: '3'

networks:
    rustdesk-net: 
        external: false

services:
    hbbs:
        container_name: hbbs
        ports:
          - 21115:21115
          - 21116:21116
          - 21116:21116/udp
          - 21118:21118
        image: rustdesk/rustdesk-server:latest
        command: hbbs -r remote.hash070.top:21117 -k _
        volumes:
          - ./hbbs:/root
        networks:
          - rustdesk-net
        depends_on:
          - hbbr
        restart: unless-stopped
    hbbr:
        container_name: hbbr
        ports:
          - 21117:21117
          - 21119:21119
        image: rustdesk/rustdesk-server:latest
        command: hbbr
        volumes:
          - ./hbbr:/root
        networks:
          - rustdesk-net
        restart: unless-stopped

注意第16行,改成你自己服务器的域名或IP

然后在防火墙开放2111521119这4个端口,udptcp我都开了

上线Docker容器

当你将compose描述文件正确填写并保存后,在当前文件夹下,通过执行下面这行命令就可以上线你的Bitwarden容器了。

docker-compose up -d

附 docker-compose常用命令:

# 上线容器
docker-compose up -d
# 停止容器
docker-compose stop
# 启动容器
docker-compose start
# 重启容器
docker-compose restart
# 下线(删除)容器
docker-compose down
# 删除容器不会导致你的数据丢失,你的数据库保存在了当前目录下的data文件夹内,请妥善保管该目录

查看服务器公钥

在上面的docker-compose文件中,已经声明开启了强制密钥加密认证,所有需要连接的设备都需要提供正确的公钥才能正常连接到服务器。

下面是docker-compose文件所在文件夹的目录结构

.
├── docker-compose.yml
├── hbbr
│   ├── id_ed25519
│   └── id_ed25519.pub
└── hbbs
    ├── db_v2.sqlite3
    ├── db_v2.sqlite3-shm
    ├── db_v2.sqlite3-wal
    ├── id_ed25519
    └── id_ed25519.pub

容器启动后会自动生成公钥和私钥,我们需要拷贝hbbs目录下的id_ed25519.pub文件里面的字符串,这个就是我们连接到服务器的凭证。

如需更换密钥和公钥,只需将hbbs文件夹下面的id_ed25519.pubid_ed25519两个文件删掉然后重启容器就可以自动重新生成。

配置客户端

客户端官方下载地址:https://rustdesk.com/

下载后虽然说不安装就能用,但是长期使用的话还是推荐安装一下

在软件界面找到设置->ID/中继服务器

image-20220702204635810

ID服务器一栏填写上你在上面的配置文件里写入的服务器域名

Key一栏写上你的服务器密钥

image-20220702204907772

Windows客户端自动配置

如果你想要让客户端不用手动输入中继地址和密钥,直接双击运行就可以用的话,可以将通过修改客户端文件名的方式来实现

将客户端按照如下格式重命名即可(不要动.exe后缀)

rustdesk-host=你的服务器域名,key=你的服务器公钥
#示例
rustdesk-host=remote.hash070.top,key=nzZrJ7YJLkM7yHXU5Gt7JumLyq9H6HLxNKPay

效果如下

image-20220702202418522

image-20220702202958072

使用体验

RustDesk总体来说差强人意(表示大体上还算令人满意)吧,这里说一下不太满意的点:

  • 受控机器要求必须有接显示器,否则会提示No Display
  • 手机控制体验很一般,只有鼠标松开后你的触摸操作才会被执行。
  • 没有后台管理系统