2026-04-06 12:57:19,某些文章具有时效性,若有错误或已失效,请在下方留言。简介
它的主要优点有以下几点:
- 安全性:使用加密通信协议保护数据传输,提升远程连接的安全性与隐私性。
- 跨平台支持:支持 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键

如果你觉得上面的方式稍微麻烦,也可以直接使用 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。配置完成后回到主页,显示“就绪”即可。

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

总结
如果你需要后台、API 和更方便的设备管理,第三方 rustdesk-web-API 是个不错的补充;如果是企业级需求更重,那还是建议直接考虑官方 Pro 方案。
RustDesk 发布教程
了解端口,确认发布端口
无论是原生部署还是 Docker 部署,先确认好服务端实际使用的端口,并同步放通防火墙与安全组。
使用 nginx 代理发布端口
面板和 Web 服务可以通过 Nginx 进行反向代理;至于 RustDesk 的核心通信端口,通常建议直接放行,不必全部绕进 Nginx。

总结
先把连通性跑通,再考虑优化、裁剪和权限管理,顺序别反了。
pro版本或者 rustdesk-web-API-server 版本
swagger 使用
如果你启用了 swagger 文档,可以直接在后台调试接口,便于后续接入业务系统。

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

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"
}'

第三方接入与 OIDC 接入
OIDC 属于更偏企业化的接入方式,如果你本身就有内部认证系统,可以继续往这个方向对接。
其他权限管理
剩下的细分权限可以按你的业务需求自行扩展。


























暂无评论内容