RustDesk API服务器搭建与用户管理完全指南
RustDesk API服务器概述
RustDesk是一款开源的远程桌面软件,支持自建服务器实现完全自主可控的远程访问。搭建自己的RustDesk API服务器不仅可以摆脱对公共服务器的依赖,还能实现用户管理、设备分组、权限控制等高级功能。本文将全面讲解RustDesk API服务器的搭建过程和用户管理方法。
服务器架构解析
核心组件
RustDesk服务器由两个核心组件构成:
| 组件 | 名称 | 默认端口 | 功能 |
|---|---|---|---|
| hbbs | ID服务器 | 21115(TCP), 21116(TCP/UDP) | 设备ID分配、连接信令 |
| hbbr | 中继服务器 | 21117(TCP) | 数据中继转发 |
工作流程
- 客户端启动时连接hbbs,获取唯一ID
- 发起远程连接时,通过hbbs传递连接请求
- 如果P2P直连成功,数据直接传输
- 如果P2P失败,通过hbbr中继转发数据
环境准备
服务器要求
- 操作系统:Ubuntu 20.04+ / CentOS 8+ / Debian 11+
- CPU:至少1核
- 内存:至少1GB(推荐2GB+)
- 硬盘:至少10GB
- 带宽:至少5Mbps(中继转发需要较高带宽)
- 公网IP:必须有固定公网IP地址
防火墙端口放行
在服务器上放行以下端口:
# Ubuntu/Debian (ufw)
sudo ufw allow 21115:21119/tcp
sudo ufw allow 21116/udp
sudo ufw allow 3478/udp
# CentOS (firewalld)
sudo firewall-cmd --permanent --add-port=21115-21119/tcp
sudo firewall-cmd --permanent --add-port=21116/udp
sudo firewall-cmd --permanent --add-port=3478/udp
sudo firewall-cmd --reload
端口用途说明:
| 端口 | 协议 | 用途 |
|---|---|---|
| 21115 | TCP | NAT类型测试 |
| 21116 | TCP | ID注册/连接信令 |
| 21116 | UDP | NAT打洞 |
| 21117 | TCP | 中继服务器 |
| 21118 | TCP | WebSocket(Web客户端) |
| 21119 | TCP | WebSocket(Web客户端) |
| 3478 | UDP | STUN/TURN服务 |
Docker部署方案
安装Docker
# 安装Docker
curl -fsSL https://get.docker.com | sh
sudo systemctl enable docker
sudo systemctl start docker
创建docker-compose配置
创建docker-compose.yml文件:
version: '3'
services:
hbbs:
container_name: hbbs
image: rustdesk/rustdesk-server:latest
command: hbbs -r your-server-ip:21117
volumes:
- ./data:/root
ports:
- 21115:21115
- 21116:21116
- 21116:21116/udp
- 21118:21118
depends_on:
- hbbr
restart: unless-stopped
hbbr:
container_name: hbbr
image: rustdesk/rustdesk-server:latest
command: hbbr
volumes:
- ./data:/root
ports:
- 21117:21117
- 21119:21119
restart: unless-stopped
重要:将
your-server-ip替换为你的服务器实际公网IP地址。
启动服务
# 创建数据目录
mkdir -p data
# 启动服务
docker-compose up -d
# 查看运行状态
docker-compose ps
获取公钥
服务启动后,会在data目录下生成密钥文件:
cat data/id_ed25519.pub
将输出的公钥内容保存下来,客户端配置时需要使用。
客户端配置
桌面客户端配置
- 打开RustDesk客户端
- 点击ID旁边的菜单 → 「网络设置」
- 填写服务器信息:
| 配置项 | 填写内容 |
|---|---|
| ID服务器 | your-server-ip |
| 中继服务器 | your-server-ip |
| API服务器 | your-server-ip |
| Key | 从服务器获取的公钥 |
- 点击「应用」保存设置
验证连接
配置完成后,检查客户端是否成功连接到自建服务器:
- 客户端ID旁应显示绿色在线图标
- 尝试远程连接另一台设备测试
用户管理系统
RustDesk API Pro介绍
RustDesk提供了API Pro(商业版)用于高级用户管理:
- 用户注册与登录
- 设备分组管理
- 地址簿同步
- 权限控制
- 使用日志审计
开源API方案
对于不想使用商业版的用户,可以使用开源的RustDesk API实现:
- 安装PostgreSQL数据库
- 部署开源API服务(如rustdesk-api-server)
- 配置客户端API服务器地址
用户注册流程
- 管理员在API管理面板创建用户账户
- 用户在客户端登录账户
- 登录后设备自动归属到该用户
- 用户可管理自己的设备列表
设备分组与权限
设备分组策略
| 分组方式 | 说明 | 适用场景 |
|---|---|---|
| 按部门分组 | 技术部、销售部等 | 企业内部管理 |
| 按地域分组 | 北京办公室、上海办公室 | 多分支机构 |
| 按功能分组 | 办公电脑、服务器、展示机 | IT运维管理 |
| 按安全等级 | 高密级、普通、公开 | 安全要求高的环境 |
权限控制
RustDesk支持以下权限级别:
- 完全控制:可以远程操作、传输文件、执行命令
- 仅查看:只能查看屏幕,不能操作
- 自定义权限:细粒度控制各项功能
配置方法:在API管理面板中,为每个用户或分组设置权限策略。
地址簿管理
个人地址簿
用户可以将常用设备添加到个人地址簿,方便快速连接。地址簿数据存储在API服务器上,支持多设备同步。
共享地址簿
管理员可以创建共享地址簿,将设备列表共享给指定用户组:
- 在管理面板创建地址簿
- 添加设备到地址簿
- 设置共享范围(用户组或单个用户)
- 被共享的用户在客户端自动同步
安全加固
证书配置
为API服务器配置TLS证书:
# 使用Let's Encrypt获取免费证书
certbot certonly --standalone -d rustdesk-api.yourdomain.com
将证书路径配置到API服务器中,确保所有通信加密。
访问控制
- IP白名单:只允许特定IP访问API服务器
- 端口限制:关闭不必要的端口
- Fail2ban:防止暴力破解
- 定期更新:及时更新RustDesk服务器版本
日志审计
启用日志记录功能,定期检查:
- 连接日志:谁在什么时间连接了哪台设备
- 文件传输日志:传输了哪些文件
- 登录日志:用户登录和注销记录
性能优化
中继服务器优化
当P2P直连失败时,数据通过中继服务器转发。优化中继性能:
- 增加带宽:中继服务器需要足够带宽
- 多中继部署:在不同地区部署中继服务器
- 调整编码参数:降低分辨率和帧率减少带宽消耗
数据库优化
如果使用API管理功能:
- 定期清理过期日志
- 建立数据库索引
- 设置自动备份
常见问题排查
客户端无法连接服务器
检查步骤:
- 确认服务器防火墙已放行所有端口
- 检查hbbs和hbbr容器是否正常运行
- 确认客户端配置的Key与服务器公钥一致
- 使用
telnet your-server-ip 21116测试端口连通性
连接成功但无法远程控制
可能原因及解决方案:
- 中继服务器未正确配置:检查
-r参数后的IP地址 - NAT类型限制:尝试配置STUN服务器
- 带宽不足:降低画质设置
ID重复或冲突
如果多台设备显示相同ID:
- 检查是否有多台设备使用了相同的配置文件
- 重启客户端重新注册ID
- 清除客户端缓存后重新连接
总结
搭建RustDesk API服务器虽然需要一定的技术基础,但完成后可以获得完全自主可控的远程桌面平台。Docker部署方案大大简化了安装过程,用户管理系统则为企业级应用提供了必要的管理能力。建议初次搭建时先在测试环境中验证,确认所有功能正常后再投入生产使用。定期关注RustDesk的版本更新,及时升级以获取新功能和安全修复。
这篇教程有帮助吗?立即下载RustDesk 中文网试试吧!
全平台支持 · 安全无毒 · 官方最新版