RustDesk 自建远程桌面服务器部署指南

384 阅读4分钟

RustDesk 自建远程桌面服务器部署指南 (Docker 版)

一、 项目简介

RustDesk 是一款开源的远程桌面软件,支持自建服务器(Self-hosted)。通过 Docker 部署自建服务器,可以实现数据完全掌握在自己手中,拥有更快的连接速度、更高的安全性,且无商业版限制。

二、 环境准备

1. 硬件与系统

  • 服务器:一台拥有公网 IP 的 Linux 服务器(推荐 CentOS 7+, Ubuntu 20.04+, Debian 10+)。
  • 内存:建议 1GB 以上(RustDesk 占用资源极低)。
  • 软件依赖:已安装 DockerDocker Compose

2. 网络端口要求 (至关重要)

请务必在云服务商的 安全组 (Security Group) 或服务器 防火墙 中放行以下端口:

端口号协议作用备注
21115TCPHBBS (ID服务)必须开放
21116TCPHBBS (ID服务)必须开放
21116UDPHBBS (心跳/打洞)核心端口,必须开放
21117TCPHBBR (中继服务)必须开放

三、 部署步骤

第一步:创建工作目录

为了便于管理数据和日志,建议在服务器上创建一个专门的目录。

# 创建目录
mkdir -p /data/rustdesk

# 进入目录
cd /data/rustdesk

第二步:创建 Docker Compose 配置文件

使用文本编辑器(如 vimnano)创建 docker-compose.yml 文件。

vim docker-compose.yml

配置内容如下 (请根据注释修改):

version: '3'

services:
  hbbs:
    container_name: hbbs
    # 推荐使用固定版本号,避免 latest 自动升级导致兼容性问题
    image: rustdesk/rustdesk-server:1.1.11-1
    # 【重要】将下面 <你的公网IP或域名> 替换为实际地址
    # 示例1 (公网IP): command: hbbs -r 123.123.123.123:21117
    # 示例2 (域名):   command: hbbs -r desk.example.com:21117
    command: hbbs -r <你的公网IP或域名>:21117
    volumes:
      - ./data:/root
    network_mode: "host"
    depends_on:
      - hbbr
    restart: unless-stopped

  hbbr:
    container_name: hbbr
    image: rustdesk/rustdesk-server:1.1.11-1
    command: hbbr
    volumes:
      - ./data:/root
    network_mode: "host"
    restart: unless-stopped

配置说明

  • network_mode: "host":让容器直接使用宿主机网络,避免复杂的端口映射问题。
  • -r 参数:指定中继服务器的地址。如果不填写,客户端将无法通过中继连接。
  • 如果你有域名,建议直接填域名,方便后续动态解析。

第三步:启动服务

docker-compose.yml 同级目录下执行:

# 拉取镜像并后台启动
docker-compose up -d

# 查看运行日志 (确认无 Error 报错)
docker-compose logs -f

(注:如果 Docker 版本较新,命令可能是 docker compose up -d,中间没有横杠)

第四步:获取连接密钥 (Key)

服务首次启动后,会自动生成加密公钥。客户端连接必须填写此 Key 才能建立加密连接。

执行以下命令查看 Key:

cat ./data/id_ed25519.pub

请复制输出的字符串(例如 8bXy...=),稍后配置客户端时需要用到。


四、 客户端配置指南

请在控制端(你的电脑)和被控端(对方电脑)下载 RustDesk 客户端,并进行如下配置。

  1. 打开 RustDesk 客户端。
  2. 点击 ID 旁边的 菜单图标 (⋮) -> 网络 -> ID / 中继服务器
  3. 填写服务器信息:
    • ID 服务器:填入你的 <公网IP或域名>
    • 中继服务器:填入你的 <公网IP或域名>
    • API 服务器:(留空,不要填)
    • Key:填入 <第四步获取的 Key 字符串>
  4. 点击 确认
  5. 如果底部状态栏显示 “就绪”,即代表部署成功。

五、 常见问题排查

Q1: 为什么状态栏一直显示“正在连接网络”?

  • 检查端口:90% 的情况是因为防火墙没开。请重点检查云服务器后台的安全组,确认 UDP 21116 是否已放行。
  • 检查 IP:确认客户端填写的 ID 服务器地址是否 ping 得通。

Q2: 为什么部署在 CentOS 7 上无法生成 Key 文件?

  • CentOS 7 默认开启 SELinux,可能会拦截 Docker 挂载目录。
  • 解决办法
    # 临时关闭 SELinux 测试
    setenforce 0
    # 或者修复目录权限
    chcon -Rt svirt_sandbox_file_t /data/rustdesk
    

Q3: 如何让外网也能访问局域网内的服务器?

  • 需要在路由器上做 端口映射 (Port Forwarding)
  • 将路由器的 21115-21117 (TCP) 和 21116 (UDP) 映射到内部服务器 IP。
  • docker-compose.yml 中的 -r 参数建议配置为公网 IP域名

Q4: 连接后提示“被控端未安装”或无法操作管理员窗口?

  • 这是 Windows 的权限保护机制。请在被控端电脑上点击 RustDesk 界面上的 “安装 RustDesk” 按钮,安装后即可拥有完整控制权限。