RustDesk服务器部署指南:从入门到企业级应用
1. RustDesk 服务器概述与部署场景RustDesk 是一款开源的远程桌面控制软件采用 Rust 语言编写具有跨平台、高性能和隐私安全等特点。与 TeamViewer 等商业方案相比RustDesk 允许用户自建服务器完全掌控数据传输路径特别适合对数据安全敏感的企业和个人开发者。在 Ubuntu 上部署 RustDesk 服务器主要涉及三个核心组件hbbsID 注册服务器负责设备标识和寻址hbbr中继服务器在直连失败时转发数据Web 控制台可选的管理界面典型部署场景包括企业内网远程技术支持跨地域团队协作个人多设备管理替代商业远程控制方案提示虽然 RustDesk 也提供公共服务器但自建服务器能确保所有流量不经过第三方对于处理敏感数据的场景尤为重要。2. 部署前的系统准备2.1 硬件与系统要求建议的最低配置CPU2核以上x86_64架构内存2GB实测1GB也可运行但性能受限存储20GB 可用空间网络10Mbps 以上带宽每会话约占用300Kbps系统版本要求Ubuntu 20.04 LTS 或更高版本推荐22.04 LTS已安装基础开发工具包验证系统架构uname -m # 应输出 x86_642.2 环境依赖安装首先更新系统并安装必要依赖sudo apt update sudo apt upgrade -y sudo apt install -y \ build-essential \ libssl-dev \ libx11-dev \ libxext-dev \ libxfixes-dev \ libxrender-dev \ libxcb1-dev \ libx11-xcb-dev \ libxcb-shm0-dev \ libxcb-randr0-dev \ libxcb-xfixes0-dev特别要注意的是如果系统启用了 SELinuxUbuntu 默认不启用需要额外配置sudo setsebool -P rustdesk_can_network_connect 12.3 防火墙配置开放必要端口建议先启用防火墙sudo ufw enable sudo ufw allow 21115:21119/tcp sudo ufw allow 8000/tcp # 用于Web控制台 sudo ufw allow 21116/udp # 用于NAT穿透验证端口开放状态sudo ufw status numbered3. RustDesk 服务器安装与配置3.1 二进制文件获取从 GitHub 下载最新版本示例使用1.2.3版wget https://github.com/rustdesk/rustdesk-server/releases/download/1.2.3/rustdesk-server-linux-amd64.zip unzip rustdesk-server-linux-amd64.zip cd amd64文件结构说明hbbsID服务器hbbr中继服务器rustdesk-utils辅助工具3.2 服务安装与启动创建系统服务文件/etc/systemd/system/hbbs.service[Unit] DescriptionRustDesk ID Server Afternetwork.target [Service] Typesimple ExecStart/path/to/hbbs -k _ Restartalways Userroot Grouproot [Install] WantedBymulti-user.target同理创建hbbr.service文件然后启动服务sudo systemctl daemon-reload sudo systemctl enable --now hbbs hbbr验证服务状态systemctl status hbbs hbbr3.3 关键参数配置通过命令行参数调整服务器行为# 示例指定密钥并启用API ./hbbs -k your_secret_key --relay-servers your.relay.ip常用参数说明-k设置连接密钥客户端需相同--relay-servers指定备用中继服务器--port修改默认监听端口--limit限制并发连接数注意密钥不要使用默认值且应在客户端和服务端保持一致。建议定期更换密钥以提高安全性。4. Web 控制台部署可选4.1 安装准备需要先安装 Node.js 环境curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - sudo apt install -y nodejs npm install -g pm24.2 控制台部署下载并安装Web控制台git clone https://github.com/rustdesk/rustdesk-webconsole.git cd rustdesk-webconsole npm install配置环境变量cp .env.example .env # 编辑.env文件配置数据库和服务器地址启动服务pm2 start npm --name rustdesk-web -- run start pm2 save pm2 startup访问控制台http://your-server-ip:80005. 客户端连接配置5.1 客户端安装各平台客户端下载地址Windows官网提供的便携版或安装版macOSHomebrewbrew install rustdeskLinux各发行版对应的包格式5.2 连接设置在客户端设置自建服务器打开设置 → 网络ID服务器填写你的服务器IP密钥与服务器设置的-k参数相同(可选) 中继服务器如果单独部署了hbbr连接测试要点先尝试局域网内连接再测试跨网络连接观察控制台日志排查问题6. 运维与故障排查6.1 日常维护命令查看实时日志journalctl -u hbbs -f服务重启sudo systemctl restart hbbs hbbr版本升级流程备份/var/lib/rustdesk目录停止服务替换二进制文件重启服务6.2 常见问题解决问题1客户端无法连接检查防火墙规则验证服务进程是否运行查看/var/log/rustdesk.log错误日志问题2画面卡顿调整客户端编码设置菜单 → 图像 → 改为速度优先检查服务器带宽占用考虑启用硬件加速需要GPU支持问题3Web控制台无法访问确认8000端口开放检查pm2进程状态查看Node.js应用日志7. 性能优化与安全加固7.1 性能调优建议修改hbbs.service添加环境变量EnvironmentRUST_LOGinfo EnvironmentRUSTDESK_THREADS4 # 根据CPU核心数调整对于高并发场景建议单独部署hbbr中继服务器使用负载均衡器分发流量启用TCP BBR拥塞控制算法7.2 安全最佳实践定期更换-k参数密钥限制访问IP通过防火墙或Nginx启用HTTPS使用Lets Encrypt证书配置自动更新通过cronjob检查新版本禁用root直接登录修改SSH配置Nginx反向代理示例配置server { listen 443 ssl; server_name your.domain.com; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; location / { proxy_pass http://127.0.0.1:8000; proxy_set_header Host $host; } }8. 高级部署方案8.1 Docker 容器化部署安装Docker后运行docker run --name hbbs -p 21115:21115 -p 21116:21116 \ -p 21116:21116/udp -p 21118:21118 \ -v /var/lib/rustdesk:/root -d rustdesk/rustdesk-server hbbs -k _8.2 多服务器集群部署架构设计1个主hbbs 多个从hbbs多个地理分布的hbbrRedis共享会话状态启动参数示例# 从服务器 ./hbbs --master-addr master.ip --region us-west8.3 IPv6支持配置修改服务启动参数./hbbs --ipv6客户端也需要启用IPv6支持[options] enable_ipv6 true9. 监控与日志分析9.1 Prometheus监控配置暴露metrics端点./hbbs --prometheus 0.0.0.0:21120Grafana仪表板导入ID13776关键监控指标在线设备数连接成功率带宽使用情况CPU/内存占用9.2 日志分析技巧使用grep过滤关键日志journalctl -u hbbs | grep -E new connection|auth failed日志级别调整临时kill -SIGUSR1 $(pidof hbbs) # 提高日志级别 kill -SIGUSR2 $(pidof hbbs) # 降低日志级别10. 备份与恢复策略10.1 关键数据备份需要定期备份的路径/var/lib/rustdesk设备注册信息/etc/rustdesk配置文件Web控制台的数据库如果使用自动备份脚本示例tar czf /backup/rustdesk-$(date %F).tar.gz \ /var/lib/rustdesk \ /etc/systemd/system/{hbbs,hbbr}.service10.2 灾难恢复流程在新服务器安装相同版本恢复备份文件到对应位置重建系统服务单元验证数据完整性测试恢复的建议每月执行一次恢复演练记录恢复耗时指标维护详细的恢复手册

相关新闻