Files
server-deploy/rustdesk/README.md
2026-04-24 11:13:49 +08:00

151 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# RustDesk Server 部署指南
开源远程桌面服务器支持自托管数据完全自主可控。包含信号服务器hbbs和中继服务器hbbr客户端支持 Windows、macOS、Linux、iOS、Android。
## 功能特性
- 自建信号服务器hbbs+ 中继服务器hbbr
- 端到端加密,数据不经过第三方
- 支持 TCP 打洞和中继转发
- 自动生成 Ed25519 密钥对
- 支持仅加密连接模式
- 跨平台客户端支持
- WebSocket 支持(可通过 Nginx 代理)
## 技术栈
| 组件 | 版本 | 说明 |
|------|------|------|
| RustDesk Server | latest | 信号服务器 + 中继服务器 |
| Nginx | 系统包 | 反向代理 + HTTPSWebSocket |
| Docker | 最新版 | 容器运行环境 |
## 端口说明
| 端口 | 协议 | 服务 | 说明 |
|------|------|------|------|
| 21115 | TCP | hbbs | NAT 类型测试 |
| 21116 | TCP | hbbs | TCP 打洞 / 连接请求 |
| 21116 | UDP | hbbs | ID 注册 / 心跳 |
| 21117 | TCP | hbbr | 中继流量转发 |
| 21118 | WS | hbbs | WebSocket仅本地监听 |
| 21119 | WS | hbbr | WebSocket仅本地监听 |
> **21115、21116、21117 需要从外网可访问**21118/21119 仅本地通过 Nginx 代理。
## 前置条件
1. 一台 Linux 服务器Ubuntu 22.04/24.04 推荐)
2. 一个已解析到服务器的域名(如 `rustdesk.example.com`
3. 服务器 80/443 端口可从外网访问
4. 服务器 21115-21117 端口可从外网访问
## 目录结构
```
rustdesk/
├── docker-compose.yml # 容器编排hbbs + hbbr
├── .env.example # 配置模板
├── deploy.sh # 一键部署脚本
├── backup.sh # 备份脚本
├── uninstall.sh # 完全卸载脚本
├── nginx/
│ └── rustdesk.conf # Nginx 反向代理配置
└── README.md # 本文件
```
服务器上的数据目录:
```
/var/lib/rustdesk/ # RustDesk 数据(密钥对 + 数据库)
/var/backups/rustdesk/ # 备份文件
```
## 快速部署
### 第一步:上传文件到服务器
```bash
# 在本地执行,上传 rustdesk 目录
scp -r rustdesk/ root@<服务器IP>:/opt/rustdesk
# 如果服务器上还没有部署过 base首台服务或全新服务器还需上传 base
scp -r base/ root@<服务器IP>:/opt/base
```
### 第二步:登录服务器执行部署
```bash
ssh root@<服务器IP>
# 如果是全新服务器,先安装基础环境
cd /opt/base
cp .env.example .env
bash setup.sh
# 部署 RustDesk
cd /opt/rustdesk
bash deploy.sh
# 首次运行会生成 .env按提示修改配置后重新运行
vi .env
bash deploy.sh
```
### 第三步:配置域名解析
在域名服务商(如阿里云 DNS添加 A 记录:
| 记录类型 | 主机记录 | 记录值 |
|----------|----------|--------|
| A | rustdesk | `<服务器公网IP>` |
### 第四步:配置 RustDesk 客户端
1. 下载并安装 [RustDesk 客户端](https://rustdesk.com/zh/)
2. 打开客户端,进入 **设置 → 网络 → ID/中继服务器**
3. 填入以下信息:
| 配置项 | 值 |
|--------|-----|
| ID 服务器 | `rustdesk.yourdomain.com` |
| 中继服务器 | `rustdesk.yourdomain.com` |
| Key | 部署完成时显示的公钥 |
> **公钥获取方法:** 部署脚本完成时会自动显示公钥,也可手动查看:
>
> ```bash
> cat /var/lib/rustdesk/id_ed25519.pub
> ```
## 常用操作
```bash
# 查看服务状态
cd /opt/rustdesk && docker compose ps
# 查看日志
cd /opt/rustdesk && docker compose logs -f
# 重启服务
cd /opt/rustdesk && docker compose restart
# 停止服务
cd /opt/rustdesk && docker compose down
# 备份数据
cd /opt/rustdesk && bash backup.sh
# 查看公钥
cat /var/lib/rustdesk/id_ed25519.pub
# 更新镜像
cd /opt/rustdesk && docker compose pull && docker compose up -d
```
## 安全建议
- 默认开启 `ENCRYPTED_ONLY=1`,仅允许加密连接
- 密钥对文件(`id_ed25519` / `id_ed25519.pub`)是最重要的数据,务必备份
- 如需更换密钥对,删除数据目录中的密钥文件后重启服务即可重新生成
- 建议定期执行 `bash backup.sh` 并将备份异地存储