# RustDesk Server 部署指南 开源远程桌面服务器,支持自托管,数据完全自主可控。包含信号服务器(hbbs)和中继服务器(hbbr),客户端支持 Windows、macOS、Linux、iOS、Android。 ## 功能特性 - 自建信号服务器(hbbs)+ 中继服务器(hbbr) - 端到端加密,数据不经过第三方 - 支持 TCP 打洞和中继转发 - 自动生成 Ed25519 密钥对 - 支持仅加密连接模式 - 跨平台客户端支持 - WebSocket 支持(可通过 Nginx 代理) ## 技术栈 | 组件 | 版本 | 说明 | |------|------|------| | RustDesk Server | latest | 信号服务器 + 中继服务器 | | Nginx | 系统包 | 反向代理 + HTTPS(WebSocket) | | 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` 并将备份异地存储