RustDesk自建服务器:从零搭建高效远程桌面服务

张开发
2026/4/12 22:50:39 15 分钟阅读

分享文章

RustDesk自建服务器:从零搭建高效远程桌面服务
1. 为什么选择RustDesk自建服务器远程桌面工具对于需要远程办公、技术支持或者管理多台设备的用户来说简直是刚需。市面上TeamViewer、AnyDesk这些老牌工具虽然好用但要么收费昂贵要么对个人用户有限制。RustDesk作为一款开源的远程桌面解决方案不仅完全免费还支持自建服务器让你拥有完全掌控的远程连接体验。我自己用了半年多的RustDesk自建服务器最直观的感受就是连接速度比用公共服务器快了不少。因为数据都走自己的服务器既不用担心隐私问题又避免了公共服务器可能出现的拥堵。特别是需要频繁传输大文件的时候自建服务器的优势就更加明显了。另一个让我选择RustDesk的原因是它的跨平台支持。Windows、macOS、Linux三大平台都有客户端甚至连树莓派都能用。我经常需要在Windows电脑和MacBook之间切换工作用RustDesk就能无缝衔接这点特别方便。2. 服务器选购与基础环境搭建2.1 选择合适的云服务器搭建RustDesk服务器对硬件要求其实不高1核1G配置就能跑得很流畅。但如果你预计会有多个用户同时连接建议选择2核4G以上的配置。我测试过2核4G的服务器同时支持5-6个1080p远程连接完全没问题。国内用户可以考虑阿里云、腾讯云的轻量应用服务器性价比很高。海外服务器的话DigitalOcean、Linode都是不错的选择。我目前在用腾讯云的上海节点2核4G5M带宽的配置月费不到100元延迟基本在30ms以内。操作系统建议选择Ubuntu 20.04 LTS或22.04 LTS这两个版本长期支持社区资源丰富遇到问题容易找到解决方案。我最初尝试过CentOS结果在安装依赖时遇到不少麻烦最后还是换回了Ubuntu。2.2 基础环境配置拿到服务器后第一件事就是更新系统并安装必要工具sudo apt update sudo apt upgrade -y sudo apt install -y wget curl unzip接着安装Node.js和PM2PM2是个非常好用的进程管理工具能保证我们的服务稳定运行curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash - sudo apt install -y nodejs sudo npm install -g pm2这里有个小技巧安装完Node.js后建议检查下npm的权限避免后续操作需要sudomkdir ~/.npm-global npm config set prefix ~/.npm-global echo export PATH~/.npm-global/bin:$PATH ~/.bashrc source ~/.bashrc3. RustDesk服务器部署实战3.1 下载安装RustDesk服务端RustDesk的服务端由两个主要组件组成hbbsID服务器和hbbr中继服务器。我们可以直接从GitHub下载预编译好的版本wget --no-check-certificate https://github.com/rustdesk/rustdesk-server/releases/download/1.1.9/rustdesk-server-linux-x64.zip unzip rustdesk-server-linux-x64.zip解压后会得到三个文件hbbs、hbbr和一个readme.txt。建议把这些文件移动到一个专门的目录方便管理mkdir ~/rustdesk-server mv hbbs hbbr ~/rustdesk-server/ cd ~/rustdesk-server chmod x hbbs hbbr3.2 配置并启动服务启动hbbs时需要指定服务器IP地址如果是内网部署就用内网IPpm2 start hbbs -- -r 你的服务器公网IP -k _ pm2 start hbbr这里的-k _参数表示让hbbs自动生成密钥对。启动成功后会在当前目录生成id_ed25519.pub文件这个文件里的内容就是客户端连接需要的Key。查看服务状态可以用pm2 list如果一切正常你应该能看到hbbs和hbbr两个进程都在运行。为了让服务开机自启执行pm2 save pm2 startup4. 网络与安全配置4.1 防火墙端口设置RustDesk需要开放以下端口21115(TCP)hbbs的监听端口21116(TCP)ID注册服务端口21117(TCP)中继服务端口21118(TCP)支持Web客户端21119(TCP)支持Web客户端如果你用的是云服务器需要在安全组中放行这些端口。以Ubuntu自带的ufw为例sudo ufw allow 21115:21119/tcp sudo ufw enable4.2 配置域名和SSL可选但推荐直接使用IP连接虽然简单但配置域名后会更方便记忆和管理。如果你有域名可以这样配置在DNS解析中添加A记录指向服务器IP安装Nginx和Certbot获取SSL证书sudo apt install -y nginx certbot python3-certbot-nginx sudo certbot --nginx -d yourdomain.com然后配置Nginx反向代理以21116端口为例server { listen 443 ssl; server_name yourdomain.com; location / { proxy_pass http://127.0.0.1:21116; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem; }这样客户端连接时就可以用域名代替IP数据传输也会通过SSL加密更安全。5. 客户端配置与使用技巧5.1 各平台客户端配置无论使用哪个平台的客户端配置方法都大同小异。以Windows客户端为例下载安装RustDesk客户端点击右上角的设置图标在网络选项卡中ID服务器填写你的服务器IP或域名中继服务器同上Key填写之前生成的id_ed25519.pub文件内容点击应用保存设置macOS和Linux客户端的配置位置也类似都是在设置界面的网络选项中。Android和iOS客户端则需要点击左上角的菜单按钮进入设置。5.2 实用功能与技巧RustDesk虽然界面简洁但功能一点也不弱。几个我常用的实用技巧文件传输在远程会话界面点击底部的文件传输按钮就能像FTP一样在两台电脑间传输文件。我经常用这个功能给客户发送大文件速度比微信快多了。多显示器支持如果远程电脑连接了多个显示器可以在连接前选择要控制的显示器或者选择所有显示器。会话录制对于需要记录操作过程的场景RustDesk支持全程录制。在设置中开启录制会话所有操作都会被保存为视频文件。快捷键自定义默认的快捷键可能不符合每个人的习惯你可以在设置中修改。我习惯把切换控制模式改成CtrlAltM用起来更顺手。6. 常见问题排查与优化6.1 连接问题排查如果客户端无法连接到自建服务器可以按照以下步骤排查首先检查服务器上的hbbs和hbbr是否正常运行pm2 list如果状态不是online查看日志pm2 logs hbbs检查防火墙设置确认端口已经开放sudo ufw status测试端口是否可达telnet 你的服务器IP 21116如果无法连接可能是云服务商的安全组没配置好。检查客户端配置是否正确特别是Key是否与服务器上的id_ed25519.pub一致。6.2 性能优化建议为了让远程连接更流畅可以尝试以下优化调整画面质量在客户端设置中降低色彩质量和帧率能显著减少带宽占用。对于文字工作设置为平衡就够了如果需要看设计图或视频再调到高质量。启用硬件加速在客户端设置的高级选项中开启硬件加速能减轻CPU负担。不过这个功能依赖显卡驱动如果开启后出现问题可以关闭。服务器位置选择如果主要用户在国内服务器最好选国内节点有海外用户的话可以考虑香港或新加坡等中间节点。定期维护建议每个月重启一次hbbs和hbbr服务防止内存泄漏pm2 restart hbbs hbbr7. 进阶配置与扩展7.1 多服务器负载均衡如果用户量较大可以考虑部署多台服务器做负载均衡。RustDesk支持这种架构具体配置如下在多台服务器上重复上述安装步骤在每台服务器的hbbs启动参数中添加-m指定主服务器pm2 start hbbs -- -r 主服务器IP -m 主服务器IP -k _配置DNS轮询或使用负载均衡器分发请求7.2 与现有系统集成RustDesk提供HTTP API可以与企业现有的用户系统集成。API文档可以在官方GitHub仓库找到。一个简单的使用示例是获取在线设备列表curl http://你的服务器IP:21116/api/online-clients返回的数据是JSON格式可以方便地用脚本处理。我帮一个客户实现了通过企业微信审批后才能建立远程连接的功能就是基于这个API开发的。7.3 监控与告警为了保证服务稳定性建议设置基本的监控。一个简单的方法是使用pm2自带的监控功能pm2 monit更专业的做法是配置Prometheus和Grafana。RustDesk的hbbs和hbbr都支持Prometheus格式的metrics只需要在启动时加上--metrics 0.0.0.0:21120参数就能在21120端口暴露监控数据。

更多文章