






















RustDesk 是一个开源的远程桌面软件,可以通过自建服务器的方式,通过远程连接访问电脑。本教程将说明如何通过 Docker 的方式快速部署 RustDesk 服务,以及如何通过 API 服务在不同设备之间快速进行远程连接。写这个教程的原因是网上的大部分教程都太零散,特别是没有对 API 服务的详细说明,希望这个教程能帮助到你。
本教程默认的环境是没有 443 端口的家宽下的内网服务器。就算你是有 443 的云服务器,也可以参考。
封面图来自 RustDesk Documentation
RustDesk 架构中包含两个服务:hbbs ID 服务和 hbbr 中继服务。其中,在 ID 服务里还包含一个 Web 控制台,可以方便进行用户设置。RustDesk 的架构图如下:

具体解释如下(转自 RustDesk 自建服务器部署和使用教程 – 米开朗基杨 – 博客园):
配置前,需要先在服务器上开放以下端口:
以下以 Red Hat Enterprise Linux 9 进行 Docker 安装的说明,其它发行版请参照 Install | Docker Docs。
先执行以下命令来卸载可能有的 Docker,避免冲突。如果是全新的系统,大概率是没有任何 Docker 组件的。
sudo dnf remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine \
podman \
runc然后执行这三条命令来添加 Docker 软件源:
sudo dnf -y install dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo
sudo dnf update在执行命令来安装 Docker:
sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin如果显示需要确认 GPG Key,请前往 Docker 官方的安装教程确认最新的 GPG 密钥指纹。截至教程最后一次更新时,GPG 密钥指纹为 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35。
安装完成后,执行 sudo systemctl enable --now docker 来启动 Docker 服务,并设置开机自启。如果不希望开机自启,就执行 sudo systemctl start docker 来启动 Docker 服务。
要确认 Docker 安装正确,并且网络通畅,执行 sudo docker run hello-world 可以试运行一个简易的测试镜像,有输出就行。至此,Docker 安装结束。
为了快速配置,本教程使用 RustDesk Server 官方仓库的一个分支版本,仓库地址为 https://github.com/lejianwen/rustdesk-api。至于风险就需要自己评估了,不建议用于生产服务器,或者和生产环境做好隔离。
以将容器部署到 /opt/rustdesk-server-s6 目录为例,执行以下命令:
sudo mkdir /opt/rustdesk-server-s6 && cd /opt/rustdesk-server-s6
sudo touch docker-compose.yml然后将以下内容粘贴进创建的 docker-compose.yaml。其中,<DOMAIN> 需要更改为服务器的域名或 IP。
services:
rustdesk:
image: lejianwen/rustdesk-server-s6:latest
ports:
- 21114:21114
- 21115:21115
- 21116:21116
- 21116:21116/udp
- 21117:21117
- 21118:21118
- 21119:21119
environment:
- RELAY=<DOMAIN>:21114
- ENCRYPTED_ONLY=1
- MUST_LOGIN=N
- TZ=Asia/Shanghai
- RUSTDESK_API_RUSTDESK_ID_SERVER=<DOMAIN>:21116
- RUSTDESK_API_RUSTDESK_RELAY_SERVER=<DOMAIN>:21117
- RUSTDESK_API_RUSTDESK_API_SERVER=https://<DOMAIN>:21114
- RUSTDESK_API_KEY_FILE=/data/id_ed25519.pub
- RUSTDESK_API_JWT_KEY= # jwt key
volumes:
- ./data/server:/data
- ./data/api:/app/data
networks:
- rustdesk-net
restart: unless-stopped
networks:
rustdesk-net:
external: false然后使用 sudo docker compose up -d 来启动容器编排。启动后,输入 sudo docker compose logs | grep Password 来查看生成的随机管理员密码,用来登入后台。
此外,还需要获取连接公钥。通过 cat ./data/server/id_ed25519.pub 查看公钥内容,然后复制备用,在配置控制端和被控端的时候会用到。
访问 http://<服务器 IP>:21114 即可打开 RustDesk 后台,用户名为 admin,密码为刚才生成的随机密码。打开后,在左侧 系统>用户管理 中,可以修改 admin 用户的密码,点击右侧的「重置密码」即可。也可以创建新用户,给其他人使用。
在 系统>设备管理 中,可以查看连接过的设备。如果历史设备过多,可以在这里删除最近用不到的。
前往 https://github.com/rustdesk/rustdesk/releases/latest 下载对应版本的 RustDesk 并安装,控制端和被控端都要安装。
注意:控制端和被控端都需要进行以下的网络设置
在左侧找到网络设置,点击「解锁网络设置」,再点击「ID/中继服务器」,如图:

然后填写以下内容:
<服务器公网 IP 或域名>:21116<服务器公网 IP 或域名>:21117http://<服务器公网 IP 或域名>:21114id_ed25519.pub 公钥中的内容)小提示:在这里可以点击右上角的复制和粘贴键,可以快速导出导入网络配置
注意:只有被控端需要进行固定密码设置
在左侧找到安全设置,点击「解锁安全设置」,往下翻找到密码,将密码选项改为「使用固定密码」,再点击「设置固定密码」。由此一来,连接到这个设备使用的密码就是固定的了。
另外,如果需要更安全,可以启用下方的 2FA 双重认证功能。启用后,连接到该被控端就需要输入一个 TOTP 密码。
默认情况下,安装好 RustDesk 后,都会默认启用被控功能,但通常情况下控制端是不需要被控制的。进入设置,点击左侧的常规,在服务一栏中点击「停止」,即可关闭被控功能。
由此一来,控制端就不会被控制了,同时也不会显示在设备列表中(如果还是有,就手动在 RustDesk 后台删掉)。
注意:控制端和被控端都需要进行账户设置
回到主页,点击中间的第五个按钮,即可登入:
admin(也可以登入别的账户)
当控制端和被控端都登入账户后,回到主页,点击中间的第五个按钮,控制端就可以看到该账户下可以连接的设备了。双击进行连接后,会提示输入被控端设置的固定密码,即可连接。
很久没写文章了,主要最近忙着上班实习,学校也有很多事情,感觉越来越忙了。这篇文章其实也是从我在公司写的操作文档里摘取出来的,希望能帮到你,欢迎到我 主页 看更多。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。