前言
此篇指南主要目的——是记录和帮助像我一样的0代码基础的小白(●'◡'●)。
首先,感谢rustdesk官方开发开源 RustDesk。
RustDesk唯一的官方域名:rustdesk.com
RustDesk项目的概述可在 Github 项目主页上找到 :https://github.com/rustdesk/rustdesk
本指南将详细介绍如何通过 Docker 快速部署 RustDesk 服务端。
RustDesk是什么
RustDesk 是一款开源远程桌面控制软件,支持自己搭建信令和中继服务器。与 TeamViewer、ToDesk 、向日葵等专有远程访问解决方案相比,RustDesk 完全免费使用,跨平台,支持 Windows、macOS、Linux、Android 、 iOS 等多种操作系统。
❗谨慎
滥用免责声明:
RustDesk 的开发者不支持或不道德或非法使用本软件。滥用,如未经授权的访问、控制或隐私侵犯,严格违反我们的指南。作者对应用的任何滥用不负责任。

准备好了吗?下面正篇开始啦!


准备材料
一台有公网IP地址的Linux 服务器(系统Ubuntu 22.04/20.04 最方便,CentOS 同理。)
服务器部署好 Docker + Docker Compose(部署3 分钟搞定,下面有命令)
准备服务器
如果你有装好的Ubuntu 20.04 64 Bit及以上系统的VPS,则直接跳过这一步。
- 如果你和我一样0基础小白,推荐可以去注册一个阿里云账号,注册后可以免费申请
试用1个月的轻量服务器。用来部署学习和测试效果!

图上这个配置的服务器(
2核4G)随便选择一款,不用担心——只是预装软件不同,系统是可以自由重置的。
- 如何重置 阿里云服务器 系统?(可选查看)
- 申请通过后,切换到
我的试用页面;点控制台进入到服务器管理页面; 
- 在
服务器管理页面;点系统名称进入到服务器概览页面。 
- 在
服务器概览页面点右上角的重置系统,弹出重置系统页面。 
- 在弹出
重置系统页面,按图上顺序选择即可把系统重置为Ubuntu。 
- 申请通过后,切换到
安装Docker
如果你有配置好的 Docker + Docker Compose,则直接跳过这一步。
Xshell 8连上VPS在控制台中输入指令部署:

一行一行复制粘贴下方代码到Xshell中,回车运行,等待结果,等运行结束后,再运行下一行代码。
✅ 第 1 步:SSH 登录后先更新系统补丁(这一步只是让系统自身保持最新补丁。提高系统的安全性。)
sudo apt update && sudo apt upgrade -y✅ 第 2 步:安装 官方最新 Docker CE(含 Compose 插件)
把下面 命令逐一复制到Xshell中,每跑完一条看到提示符 $ 或 # 再复制下一条:
- # 1. 卸载旧包
for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt remove -y $pkg; done- # 2. 装依赖
sudo apt install -y ca-certificates curl gnupg lsb-release- # 3. 加密钥(让 Ubuntu 在安装 Docker 时能够验证下载的包确实是 Docker 官方出品,没有被篡改或植入恶意代码。)
sudo mkdir -p /etc/apt/keyringscurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg- # 4. 加仓库
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null- # 5. 安装 Docker + Compose 插件
sudo apt updatesudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin- # 6. 把当前用户加入 docker 组
sudo usermod -aG docker $USER⚠️ 关键提醒:执行完上面命令后,关闭当前 Xshell 窗口,重新再连一次 SSH,让用户组生效。
✅ 第 3 步:验证安装成功
重连后再跑:
docker --versiondocker compose versiondocker --version # 应 ≥ 24.x
docker compose version # 应 ≥ v2.29

执行完后显示以上信息,Docker安装完成!
👉使用Docker部署RustDesk
✅ 防火墙 开放所需端口
| 端口 | 协议 | 服务 | 用途 | 必需 |
|---|---|---|---|---|
21114 | TCP | hbbs | Web 控制台(Pro 版本) | 可选 |
21115 | TCP | hbbs | NAT 类型测试 | 必需 |
21116 | TCP/UDP | hbbs | ID 注册与心跳服务 | 必需 |
21117 | TCP | hbbr | 中继服务 | 必需 |
21118 | TCP | hbbs | Web 客户端支持 | 可选 |
21119 | TCP | hbbr | Web 客户端支持 | 可选 |
提示:如果不需要 Web 客户端支持,可以关闭
21118和21119端口。阿里云的服务器,请再参考下图在阿里云的防火墙控制台中开放所需端口。

📦配置服务
✅ 第 1 步:创建 RustDesk 专用目录 & 系统防火墙放通 RustDesk 需要的端口 & 配置RustDesk-compose 文件
mkdir ~/rustdesk && cd ~/rustdesksudo ufw allow 22/tcp
sudo ufw allow 21114:21119/tcp
sudo ufw allow 21116/udp
sudo ufw enable && sudo ufw status🤔为什么这里要多补充一句
sudo ufw allow 22/tcp?ufw 的“开关”逻辑是全量白名单制:
在你执行
sudo ufw enable之前,ufw 处于 inactive 状态,此时内核 netfilter 表里没有 ufw 规则,所有端口都靠云安全组裸奔,所以 新机22 能连。一旦
sudo ufw enable,ufw 会立即把默认入站策略设为DENY,然后只加载你之前显式 allow 的那几条(21115-21119/tcp、21116/udp)。
– 若22 从未被 allow → 则瞬间被“拉黑”,则会导致下次Xshell等无法通过22建立远程连接。换句话说:
不是 22 被“关掉”,而是 ufw 一启用就默认拒绝一切,除了你当时写进去的那几个端口。
所以看起来“原来好好的,突然就墙了”,其实就是缺一条sudo ufw allow 22/tcp。
cat > docker-compose.yml <<EOF
version: "3.8"
services:
hbbs:
container_name: rustdesk-hbbs
image: rustdesk/rustdesk-server:latest
command: hbbs
volumes:
- ./data:/root
network_mode: "host"
depends_on:
- hbbr
restart: unless-stopped
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
hbbr:
container_name: rustdesk-hbbr
image: rustdesk/rustdesk-server:latest
command: hbbr
volumes:
- ./data:/root
network_mode: "host"
restart: unless-stopped
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
EOF✅ 第 2 步:启动 RustDesk服务(拉镜像并后台运行)
docker compose up -d😅如果国内用户,多次尝试
docker compose up -d遇到拉取镜像失败,请运行下面这个镜像加速的配置后,再尝试;这个配置另外还作了日志限制,能有效防止其他docker容器日志爆磁盘。sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": [ "https://docker.m.daocloud.io", "https://docker.1panel.live", "https://dockerpull.com" ], "log-driver": "json-file", "log-opts": { "max-size": "50m", "max-file": "10" } } EOF sudo systemctl daemon-reload sudo systemctl restart dockerdocker compose up -d
✅ 第 3 步:查看服务状态(# 看到 rustdesk-hbbs / rustdesk-hbbr 两条就成功)
docker ps🔑获取服务密钥
部署完成后,需要获取服务端密钥用于客户端配置:
✅ 查看公钥(客户端配置时需要,保存好)
cat ./data/id_ed25519.pub# 输出示例
T07pESbNfyozhAEKQNpRkVPwEayOPl598q5Vf5ZA=
📱客户端使用配置指南
📥下载客户端
访问 RustDesk Releases 下载最新版本的客户端。

若你访问GitHub困难,Windows客户端、安卓客户端可点击下方附件进行下载。
| 版本 | 附件 | 大小 |
|---|---|---|
| Windows丨x86-64 (64-bit) | rustdesk-1.4.4-x86_64.exe | ~23.0 MB |
| Windows丨x86-32 (32-bit) | rustdesk-1.4.4-x86-sciter.exe | ~11.1 MB |
| Android | rustdesk-1.4.4-universal-signed.apk | ~67.4 MB |
😅安装手机客户端时,部分用户可能会遇到:比如华为手机安装时提示“该应用为诈骗应用,禁止安装”;
解决方法:使用断网大法 (先打开飞行模式,再安装APK即可)。
⚙️ 配置服务器地址
在控制端和被控端都需要进行以下配置:
- 打开设置 → 点击右上角 ⚙️ 设置按钮
- 进入网络 → 选择「网络」选项卡
- 解锁设置 → 点击「解锁网络设置」
- 配置服务器 → 点击「ID/中继服务器」

😅解锁网络设置时——部分用户可能会遇到:出现“管理员已阻止你运行程序”的提示,通常是操作系统出于安全策略拦截了 RustDesk 的可执行文件。
Windows 系统推荐解决方法:组策略关闭“管理员批准模式”
Win+R → gpedit.msc →计算机配置 → Windows 设置 → 安全设置 → 本地策略 → 安全选项 →找到“用户帐户控制:以管理员批准模式运行所有管理员”→ 设为“已禁用”,重启生效
📝 填写服务器信息
在弹出的配置窗口中填写以下信息:
| 配置项 | 填写内容 | 示例 |
|---|---|---|
| ID 服务器 | 服务器IP:21116 | 192.168.1.100:21116 |
| 中继服务器 | 服务器IP:21117 | 192.168.1.100:21117 |
| API 服务器 | 留空 | - |
| Key | 之前获取的公钥 | T07pESb... |

✅ 验证配置
配置完成后:
- 点击「确认」按钮
- 返回主界面
- 确认底部状态显示为「就绪」

🎯 开始远程连接
连接步骤:
- 在控制端输入被控端的 ID
- 点击「连接」按钮
- 输入被控端的连接密码(可以给被控端设置固定密码)
- 开始远程桌面会话!
- RustDesk设成开机启动。按win+r,输入
shell:startup,回车,把rustdesk创建个快捷方式扔进去就可以了。 - 找到rustdesk的快捷方式,右键-属性,在
目标(T)路径后面加上一行,--install-service -wait -Verbose,以后打开rustdesk就会自动开启服务了,别人就能远程控制本机了。参考示例:"C:\Program Files\RustDesk\rustdesk.exe" --install-service -wait -Verbose
恭喜你,至此,RustDesk 自建服务部署和配置已全部完成!

参考来源
- 自建 RustDesk 远程桌面完整部署教程 | Cactus's Blog (cactusli.net)
- 一个真·免费、真·开源的远程桌面神器——RustDesk - 程序员晓凡 - 博客园 (cnblogs.com)
- 开源、免费远程桌面RustDesk私有化部署指南 - 知乎 (zhihu.com)
- RustDesk Server OSS安装——RustDesk官方文档
- 一个视频详细讲解Rustdesk服务器自建 云服务器、普通电脑、甚至openwrt都兼容 还兼容wayland被控!_哔哩哔哩_bilibili
- 个人远程控制解决方案:WOL网络唤醒+Rustdesk远程控制 | ichikaの小窝
- rustdesk服务不自动启动 - 知乎 (zhihu.com)