自建远程桌面服务 RustDesk 的搭建教程

温馨提示:本文最后更新于2026-04-06 12:57:19,某些文章具有时效性,若有错误或已失效,请在下方留言。

简介

RustDesk 是一款安全、快速的远程桌面软件。

它的主要优点有以下几点:

  • 安全性:使用加密通信协议保护数据传输,提升远程连接的安全性与隐私性。
  • 跨平台支持:支持 Windows、macOS、Linux、Android 等多个平台,使用场景非常灵活。

从名字也能看出来,RustDesk 由 Rust 编写,特点就是高效和并发能力不错。实际测试中,一台入门配置的轻量服务器给个人或小团队使用通常已经够了。

开源地址

部署前准备

开放端口

  • TCP:21115、21116、21117、21118、21119
  • UDP:21116

安装 screen 命令

如果系统还没有安装 screen,可以先完成安装,后面用它来后台挂起服务进程会更方便。

安装 wget 命令

yum install wget -y #centos
apt install wget -y #ubuntu

安装 unzip 命令

yum install unzip -y #centos
apt install unzip -y #ubuntu

部署服务

新建存放目录并下载服务端:

mkdir /opt/rustdesk #可以修改成自己的目录
wget https://github.com/rustdesk/rustdesk-server/releases/download/1.1.10-3/rustdesk-server-linux-amd64.zip #如果版本更新,请自行替换成最新版本

解压服务端:

unzip rustdesk-server-linux-amd64.zip

运行服务端:

cd /opt/rustdesk/amd64
screen -S hbbr
./hbbr -k _
ctrl键+a键+d键 #离开并挂起当前窗口,后台继续运行
screen -S hbbs
./hbbs -k _
ctrl键+a键+d键
自建远程桌面服务 RustDesk 的搭建教程

如果你觉得上面的方式稍微麻烦,也可以直接使用 systemctl 来托管服务端。

使用 systemctl 命令运行服务端

hbbs:

[Unit]
Description=RustDesk Hbbs
After=network.target

[Service]
User=mintimate
Type=simple
WorkingDirectory=/home/mintimate/myApplication/RustDesk
ExecStart=/home/mintimate/myApplication/RustDesk/hbbs
ExecStop=/bin/kill -TERM $MAINPID

[Install]
WantedBy=multi-user.target

hbbr:

[Unit]
Description=RustDesk Hbbr
After=network.target

[Service]
User=mintimate
Type=simple
WorkingDirectory=/home/mintimate/myApplication/RustDesk
ExecStart=/home/mintimate/myApplication/RustDesk/hbbr
ExecStop=/bin/kill -TERM $MAINPID

[Install]
WantedBy=multi-user.target

开始使用

使用客户端连接服务端

启动完成后,目录里会多出数据库文件和证书文件。我们接下来主要用到公钥文件 id_ed25519.pub。

ls

RustDesk
├── db_v2.sqlite3
├── db_v2.sqlite3-shm
├── db_v2.sqlite3-wal
├── hbbr
├── hbbs
├── id_ed25519
├── id_ed25519.pub
└── rustdesk-utils

查看公钥内容:

cat id_ed25519.pub #把 id_ed25519.pub 改成你的实际公钥文件名称
公钥文件内容:C6CJn7*******************50sCF3y4=

然后下载客户端,打开设置,填写 ID / Relay Server 和 Key。配置完成后回到主页,显示“就绪”即可。

自建远程桌面服务 RustDesk 的搭建教程

修改客户端

如果你只是自用,或者只想保留精简功能,那么客户端也可以进一步做裁剪和定制。下面这一段放到隐藏内容里,免得正文太长。

docker 部署教程

运行容器

docker 直接运行
# hbbs (id服务)
docker run --restart=always --name hbbs -v /opt/rustdesk:/root -td --net=host rustdesk/rustdesk-server hbbs -r [服务器公网IP或域名]

# hbbr (中继服务)
docker run --restart=always --name hbbr -v /opt/rustdesk:/root -td --net=host rustdesk/rustdesk-server hbbr
docker compose 运行
version: '3'

services:
  hbbs:
    container_name: hbbs
    ports:
      - 21115:21115
      - 21116:21116
      - 21116:21116/udp
      - 21118:21118
    image: rustdesk/rustdesk-server:latest
    command: hbbs -r rustdesk.example.com:21117
    volumes:
      - ./data:/root
    restart: unless-stopped

  hbbr:
    container_name: hbbr
    ports:
      - 21117:21117
      - 21119:21119
    image: rustdesk/rustdesk-server:latest
    command: hbbr
    volumes:
      - ./data:/root
    restart: unless-stopped
自建远程桌面服务 RustDesk 的搭建教程

rustdesk-web-API-server 部署

开源版和 Pro 版的主要区别,核心在于 Web 管理控制台、API、审计日志、设备分组、企业级安全等能力。对于中小团队来说,第三方 rustdesk-web-API 项目已经能补上不少管理功能。

功能开源自托管版Pro 自托管版
Web 管理控制台完整图形化界面
API 接口RESTful API
审计日志仅基础连接日志完整操作审计
设备分组/标签手动管理可视化批量管理
企业级安全基础密码验证支持 2FA 等增强能力

项目地址:https://github.com/lejianwen/rustdesk-api

docker compose 运行

version: '3'
services:
  rustdesk:
    image: lejianwen/rustdesk-server-s6:latest
    container_name: rustdesk-server
    ports:
      - '21114:21114'
      - '21115:21115'
      - '21116:21116'
      - '21116:21116/udp'
      - '21117:21117'
      - '21118:21118'
      - '21119:21119'
    environment:
      - RELAY=rustdesk.domain.com:21117
      - ENCRYPTED_ONLY=1
      - MUST_LOGIN=Y
      - TZ=Asia/Shanghai
      - RUSTDESK_API_APP_SHOW_SWAGGER=0
      - RUSTDESK_API_RUSTDESK_API_SERVER=https://rustdesk.domain.com
      - RUSTDESK_API_RUSTDESK_RELAY_SERVER=rustdesk.domain.com:21117
      - RUSTDESK_API_RUSTDESK_ID_SERVER=rustdesk.domain.com:21116
    volumes:
      - ./data:/data
      - ./data/api:/app/data
    restart: unless-stopped
自建远程桌面服务 RustDesk 的搭建教程

总结

如果你需要后台、API 和更方便的设备管理,第三方 rustdesk-web-API 是个不错的补充;如果是企业级需求更重,那还是建议直接考虑官方 Pro 方案。

RustDesk 发布教程

了解端口,确认发布端口

无论是原生部署还是 Docker 部署,先确认好服务端实际使用的端口,并同步放通防火墙与安全组。

使用 nginx 代理发布端口

面板和 Web 服务可以通过 Nginx 进行反向代理;至于 RustDesk 的核心通信端口,通常建议直接放行,不必全部绕进 Nginx。

自建远程桌面服务 RustDesk 的搭建教程

总结

先把连通性跑通,再考虑优化、裁剪和权限管理,顺序别反了。

pro版本或者 rustdesk-web-API-server 版本

swagger 使用

如果你启用了 swagger 文档,可以直接在后台调试接口,便于后续接入业务系统。

自建远程桌面服务 RustDesk 的搭建教程

用户初始化

首次部署后,记得先完成管理员初始化和基础权限配置。

自建远程桌面服务 RustDesk 的搭建教程

Oauth2 接入(GitHub)演示

curl --location --request POST 'http://127.0.0.1:21114/api/admin/oauth/create' \
--header 'api-token: your-token' \
--header 'Content-Type: application/json' \
--data '{
  "id": 0,
  "oauth_type": "github",
  "client_id": "2221",
  "client_secret": "1123",
  "auto_register": true,
  "pkce_enable": false,
  "pkce_method": "S256"
}'
自建远程桌面服务 RustDesk 的搭建教程

第三方接入与 OIDC 接入

OIDC 属于更偏企业化的接入方式,如果你本身就有内部认证系统,可以继续往这个方向对接。

其他权限管理

剩下的细分权限可以按你的业务需求自行扩展。

自建远程桌面服务 RustDesk 的搭建教程
© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称常用语表情代码图片

    暂无评论内容