Why Not Rustdesk?

自建远程桌面的可能选项

在 TeamViewer频繁提示商用、Todesk强制验证手机号的今天,远程桌面曾经的广泛选择已剩不多。似乎任何软件国产化后,都逃不开实名制的困扰。那么为什么不用开源软件?或许Rustdesk就是其中值得研究的一个。

RustDesk是一款开箱即用的开源免费的全平台远程桌面软件,包括MacOS、Windows和Android的客户端支持。你可以选择使用官方的注册/中继服务器,也可以自建服务器,甚至基于官方代码开发自己的版本。

GitHub官方仓库地址

如何部署?

选择省心省力的 DockerCompose 部署方式:

  1. 安装 Docker

由于每个系统所需要执行的命令都不一样,请看官方文档地址

Debian安装命令

sudo apt update
 
sudo apt install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release 
 
sudo mkdir -p /etc/apt/keyrings
 
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
 
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin
  1. 安装 Docker Compose

需要到 GitHub 上下载最新的二进制文件

服务器的话一般选择带有linux x86_64字样的发行版软件 ( wget )

# 修改文件名称并移动到bin目录下
sudo mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose
# 赋予执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 检查是否安装成功
docker-compose -v
# 输出:Docker Compose version v2.6.0 即表示安装成功
  1. 创建数据存放目录与docker-compose描述文件

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

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

mkdir rustdesk
cd rustdesk
然后使用vim创建并填写docker-compose描述文件。
vim docker-compose.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

然后在防火墙开放21115到21119这4个端口

ufw allow 22/tcp
ufw allow 21115:21119/tcp
ufw allow 8000/tcp
ufw allow 21116/udp
sudo ufw enable
  1. 上线Docker容器

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

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

  1. 配置客户端

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

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

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

  1. 顺便给服务器开启 TCP BBR 加速

参考

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

Docker 与 Docker Compose的安装

自建远程桌面服务替代TeamViewer/Todesk

开启CentOS/Debian自带的TCP BBR加速

自建远程桌面服务 - Rustdesk


更多使用体验待续,至少满足了全平台使用,延迟较低、画质还行,即开即用的痛点。。

All rights reserved
Except where otherwise noted, content on this page is copyrighted.