简介

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

GitHub 官方仓库

官方网站地址

部署服务

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

#更新系统软件包列表
apt-get update && apt-get upgrade -y
#下载docker
wget -qO- get.docker.com | bash

#设置docker开机自启
systemctl enable docker

#重启docker
systemctl restart docker

#查看docker版本
docker --version

#安装docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

#docker-compose赋权
sudo chmod +x /usr/local/bin/docker-compose

#查看docker-compose版本
docker-compose --version

创建持久化目录及 compose 描述文件

# 创建文件夹
mkdir -p /home/rustdesk-server

cd /home/rustdesk-server

mkdir hbbr

mkdir hbbs

# 创建描述文件,并粘贴序号3的描述文件内容
vim docker-compose.yml

docker-compose.yml 描述文件

version: '3'

networks:
  rustdesk-net:
    external: false

services:
  hbbs:
    container_name: rustdesk-hbbs
    ports:
      - 21115:21115
      - 21116:21116
      - 21116:21116/udp
      - 21118:21118
    image: rustdesk/rustdesk-server:latest
    # 请把 www.aaabbb.com:21117 修改为自己的域名
    # 如果您禁止没有key的用户建立非加密连接,请在运行hbbs和hbbr的时候添加-k _参数
    command: hbbs -r www.aaabbb.com:21117 -k _
    volumes:
      - ./hbbs:/root
    networks:
      - rustdesk-net
    depends_on:
      - hbbr
    restart: unless-stopped

  hbbr:
    container_name: rustdesk-hbbr
    ports:
      - 21117:21117
      - 21119:21119
    image: rustdesk/rustdesk-server:latest
    command: hbbr
    volumes:
      - ./hbbr:/root
    networks:
      - rustdesk-net
    restart: unless-stopped

运行容器

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

查看服务器公钥

在上面的 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.pub ​和 id_ed25519 ​两个文件删掉然后重启容器就可以自动重新生成。

配置客户端

普通配置

注意:被控端只需要填写输入服务器 IP 地址即可,控制端需要填入秘钥,才可以发起连接。

我们可以在客户端的设置界面,输入服务器 IP 地址,和秘钥文件,保存后,就可以看到客户端会提示就绪。
rustdesk_01.png
rustdesk_02.png

自动配置

只有在控制端发起连接时才需要验证秘钥。

这样我们就可以把被控端发给任何人,而不需要担心秘钥泄露,以及其他未授权用户发起连接。

设置好后,我们将被控端发给需要我们远程的人,不需要他做任何设置,只需要他打开软件,将软件的 ID 和密码发给我们,我们就可以远程其设备了。‍

如果需要无人值守,也就是开机自动运行远程软件,以方便我们远程连接,我们直接打开被控端软件,点击安装就可以将软件和配置一起安装到设备上。

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

我们将客户端改名:
被控端
host=服务器IP,key=错误的秘钥内容.exe
例如:host=129.129.33.8,key=111.exe

控制端
host=服务器IP,key=正确的秘钥内容.exe
例如:host=129.129.33.8,key=4uZtPIYe4y344NP3IVc5SxRzKeiNn2lfen4tEY=.exe

附注

端口说明

组件功能使用的端口
hbbsRustDesk ID 注册服务器21115(tcp):用作 NAT 类型测试
hbbsRustDesk ID 注册服务器21116(udp):用作 ID 注册与心跳服务
hbbsRustDesk ID 注册服务器21116(tcp):用作 TCP 打洞与连接服务
hbbrRustDesk 中继服务器21117(tcp):用作中继服务
Last modification:November 4, 2023
如果觉得我的文章对你有用,请随意赞赏