Sunny
0

RustDesk Docker Compose 完整部署

#Linux#系统

接下来介绍如何部署RustDesk Docker Compose 完整部署方式,如果你已经有一台 Linux 服务器,那么用 Docker 部署 RustDesk 服务端是最省事的方式。RustDesk 服务端主要包含两个核心组件:

  • hbbs:负责 ID 注册、设备发现
  • hbbr:负责中继转发

大多数情况下,只要把这两个服务跑起来,再在客户端填入你的服务端地址,就能开始使用。


一、部署前准备

先准备好这些东西:

  • 一台 Linux 服务器
  • 已安装 Docker
  • 有公网 IP,或者能被外网访问
  • 防火墙 / 安全组已放行相关端口

如果你只是自己用,1 核 1G 的轻量云主机通常就够起步了。真正影响体验的,往往不是 CPU,而是网络线路和带宽。


二、目录准备

先创建部署目录:

mkdir -p /opt/rustdesk-server
cd /opt/rustdesk-server
mkdir -p data

三、编写 docker-compose.yml

/opt/rustdesk-server 目录下新建 docker-compose.yml

version: '3'

services:
  hbbs:
    image: rustdesk/rustdesk-server:latest
    container_name: rustdesk-hbbs
    command: hbbs -r IP地址:21117  #这里注意填写ip地址
    network_mode: host
    volumes:
      - ./data:/root
    restart: always

  hbbr:
    image: rustdesk/rustdesk-server:latest
    container_name: rustdesk-hbbr
    command: hbbr
    network_mode: host
    volumes:
      - ./data:/root
    restart: always

参考官网文档:

CleanShot 2026-05-31 at 15.57.23@2x


四、启动服务

执行:

docker compose up -d

查看运行状态:

docker compose ps

如果两个容器都正常运行,说明服务已经启动成功。


五、查看日志

如果你想确认服务是否正常,可以看日志:

查看 hbbs 日志:

docker logs -f rustdesk-hbbs

查看 hbbr 日志:

docker logs -f rustdesk-hbbr

如果日志没有明显报错,一般说明服务端本身没问题。


六、RustDesk 自建服务端常用端口说明

RustDesk 自建时,最容易出问题的地方就是端口没放通。常见需要关注的端口有:

  • 21115
  • 21116
  • 21117
  • 21118
  • 21119

不同版本、不同部署方式,端口使用情况可能会有差异,正式上线前建议以官方文档为准进行核对。


七、Rocky Linux 9 防火墙放行示例

如果你的服务器是 Rocky Linux 9 / RHEL 9 / AlmaLinux 9,通常默认使用 firewalld

先查看防火墙状态:

systemctl status firewalld

如果在运行,就放行端口:

firewall-cmd --permanent --add-port=21115/tcp
firewall-cmd --permanent --add-port=21116/tcp
firewall-cmd --permanent --add-port=21116/udp
firewall-cmd --permanent --add-port=21117/tcp
firewall-cmd --permanent --add-port=21118/tcp
firewall-cmd --permanent --add-port=21119/tcp
firewall-cmd --reload

查看是否已放通:

firewall-cmd --list-ports

如果你还有云厂商安全组,也别忘了同步放行这些端口。很多人以为系统防火墙开了就行,结果安全组没放开,客户端还是连不上。


八、Ubuntu 防火墙放行示例

如果你的服务器是 Ubuntu,常见使用 ufw

先查看状态:

sudo ufw status

如果开启了 ufw,执行:

sudo ufw allow 21115/tcp
sudo ufw allow 21116/tcp
sudo ufw allow 21116/udp
sudo ufw allow 21117/tcp
sudo ufw allow 21118/tcp
sudo ufw allow 21119/tcp
sudo ufw reload

查看规则:

sudo ufw status numbered

九、云服务器安全组也必须放行

如果你用的是阿里云、腾讯云、华为云、AWS、Oracle Cloud、Vultr 等云服务器,除了系统防火墙,还要检查:

  • 安全组
  • 网络 ACL
  • 云平台入站规则

至少要确认两层:

  1. 云平台安全组放行
  2. 系统防火墙放行

少一层都可能不通。


十、检查服务端端口是否真的在监听

光看容器运行中还不够,最好确认端口确实已经监听:

ss -lntup | grep 211

如果看到相关端口处于监听状态,说明服务已经正常对外提供能力。


十一、获取 RustDesk 服务端公钥

客户端连接自建 RustDesk 时,除了服务器地址,还需要配置公钥。这个公钥的路径是因为我们的dockercompose的文件是在/opt/rustdesk-server目录下的,所以容器镜像会映射公钥到该路径下。

查看公钥命令:

cat /opt/rustdesk-server/data/id_ed25519.pub

你会得到一串字符串,这就是客户端要填的 Key

这个公钥很关键。很多人部署成功后还是连不上,问题往往就出在这里:公钥没填、公钥填错、复制时带了多余空格或换行。


十二、客户端配置方法

服务端部署完成后,需要下载客户端

CleanShot 2026-05-31 at 16.09.23@2x

安装完成后,不需要账户登录,需要设置配服务端的信息

CleanShot 2026-05-31 at 16.12.00@2x

  • ID Server:您的 hbbs 主机名或 IP 地址
  • Key:用于加密连接的公钥
  • API Server:Pro 登录和 Web 控制台功能所必需
  • Relay Server:通常是可选的,除非您想显式指定它

打开 RustDesk 客户端,进入网络设置页面,填写以下内容:

1)ID Server

填你的服务器公网 IP 或域名,例如:

123.123.123.123:端口号

2)Key

cat /opt/rustdesk-server/data/id_ed25519.pub

配置保存后,客户端就会尝试连接你的自建服务端。


十三、Docker Compose 常用维护命令

既然是自己部署,后面难免要维护。下面这几个命令建议收藏。

启动服务

docker compose up -d

停止服务

docker compose down

重启服务

docker compose restart

查看状态

docker compose ps

查看日志

docker compose logs -f

拉取新镜像并更新

docker compose pull
docker compose up -d

十四、RustDesk 自建常见问题排查

1)容器启动了,但客户端连不上

优先检查:

  • 云安全组是否放行
  • 系统防火墙是否放行
  • 客户端填的是不是公网 IP / 正确域名
  • 公钥有没有填对

这个问题最常见,八成不是 RustDesk 本身的问题,而是网络配置问题。


2)能连上,但画面很卡

这通常和下面几项有关:

  • VPS 线路差
  • 带宽太小
  • 晚高峰丢包
  • 被控端上行太弱
  • 没能直连,只能走中继

远程桌面体验,不只看服务端,更看网络链路质量。RustDesk 自建后不会被平台会员策略限制,但也不会突破物理网络条件本身。


3)公钥填了还是不通

排查方向:

  • 是否复制错了公钥
  • 数据目录是否挂载正确
  • 客户端保存后是否真正生效
  • 服务端是否重新生成过密钥

如果中途删除过数据目录,公钥可能已经变了,这时候客户端里旧的 Key 就会失效。


4)域名配置了,但还是不通

检查:

  • DNS 解析是否生效
  • 域名是否指向正确公网 IP
  • 本地 ping / nslookup 是否正常
  • hbbs -r 里的地址是否也写对

有时候不是 Docker 问题,而是域名本身没解析到正确的机器。


十五、部署建议:怎么选服务器更合适?

如果你打算长期使用 RustDesk,建议从一开始就把服务器选对。

1)不要只看便宜

远程桌面的体验,线路质量比单纯价格更重要

2)优先考虑离你常用网络近的节点

例如你主要在国内用,就优先考虑:

  • 国内云服务器
  • 或者对国内线路更友好的海外节点

3)带宽要够

RustDesk 尤其在中继场景下,对带宽比较敏感。如果服务器带宽太小,多设备同时远程时体验会明显下降。

4)先小规模试,再决定是否长期使用

先拿一台轻量主机跑起来测试,确认体验合适,再决定是否升级线路和配置。


十六、小结

如果只是偶尔远程一下,很多商业工具确实更省事。但如果你是技术人员、运维工程师,或者有多设备远程管理需求,那么 RustDesk 的价值就不只是“能用”,而是:

  • 开源
  • 可自建
  • 链路可控
  • 长期不容易受平台策略影响

而在所有自建方式里,Docker Compose 基本是最适合大多数人的方案

  • 部署快
  • 升级方便
  • 维护简单
  • 出问题也更容易排查

所以如果你已经决定长期使用 RustDesk,那么自己搭一套服务端,确实很值得。


参考链接

系列导航

按系列顺序继续阅读当前专题内容

工具篇实战