Ubuntu上自建RustDesk远程桌面服务器完整指南
1. 项目概述RustDesk是一款开源的远程桌面控制软件类似于TeamViewer或AnyDesk但完全免费且支持自建服务器。在Ubuntu系统上部署RustDesk服务器可以让你拥有完全掌控的远程访问解决方案特别适合需要频繁远程办公或管理多台设备的用户。我最近在一台Ubuntu 22.04 LTS服务器上成功部署了RustDesk服务端整个过程比想象中要简单得多。相比使用官方服务器自建服务器不仅能提高连接速度还能确保所有数据传输都在自己的掌控之中对于注重隐私和安全的用户来说是个不错的选择。2. 环境准备2.1 系统要求在开始之前确保你的Ubuntu系统满足以下最低要求Ubuntu 18.04或更高版本推荐20.04/22.04 LTS至少2GB内存4GB以上更佳10GB可用磁盘空间稳定的网络连接建议有固定公网IP或配置好DDNS提示如果你使用的是云服务器记得在安全组/防火墙中放行21115-21119 TCP端口和21116 UDP端口。2.2 基础依赖安装首先更新系统并安装必要依赖sudo apt update sudo apt upgrade -y sudo apt install -y curl wget unzip gcc make对于Ubuntu 18.04用户还需要额外安装pipewiresudo apt install software-properties-common sudo add-apt-repository ppa:pipewire-debian/pipewire-upstream sudo apt update3. RustDesk服务器安装3.1 下载服务器端软件访问RustDesk GitHub发布页面获取最新版本或直接使用wget下载wget https://github.com/rustdesk/rustdesk-server/releases/download/1.1.8/rustdesk-server-linux-amd64.zip unzip rustdesk-server-linux-amd64.zip解压后会得到三个可执行文件hbbs - RustDesk ID服务器hbbr - RustDesk中继服务器rustdesk-utils - 实用工具3.2 配置系统服务创建systemd服务文件能确保服务在系统重启后自动运行。首先为hbbs创建服务sudo tee /etc/systemd/system/rustdesk-hbbs.service EOF [Unit] DescriptionRustDesk ID Server Afternetwork.target [Service] Typesimple ExecStart/path/to/hbbs WorkingDirectory/path/to/ Userroot Grouproot Restartalways RestartSec5s [Install] WantedBymulti-user.target EOF同样为hbbr创建服务文件只需将hbbs替换为hbbr。然后重新加载systemd并启动服务sudo systemctl daemon-reload sudo systemctl enable --now rustdesk-hbbs rustdesk-hbbr3.3 验证服务状态检查服务是否正常运行systemctl status rustdesk-hbbs rustdesk-hbbr如果一切正常你应该能看到类似这样的输出● rustdesk-hbbs.service - RustDesk ID Server Loaded: loaded (/etc/systemd/system/rustdesk-hbbs.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2023-05-18 14:23:45 UTC; 5min ago4. 网络与安全配置4.1 防火墙设置如果你的服务器启用了UFW防火墙需要放行必要端口sudo ufw allow 21115:21119/tcp sudo ufw allow 21116/udp sudo ufw allow 22/tcp # 保留SSH访问 sudo ufw enable4.2 密钥配置RustDesk使用密钥对来加密通信。首次运行hbbs时会自动生成密钥文件id_ed25519id_ed25519.pub这些文件位于hbbs所在目录。pub文件中的公钥需要提供给客户端使用。4.3 域名与SSL配置可选为了更好的安全性和易用性建议配置域名和SSL证书将域名A记录指向你的服务器IP使用Lets Encrypt获取免费证书sudo apt install certbot sudo certbot certonly --standalone -d yourdomain.com然后在启动hbbs/hbbr时添加SSL参数ExecStart/path/to/hbbs -k _ --ssl-cert /etc/letsencrypt/live/yourdomain.com/fullchain.pem --ssl-key /etc/letsencrypt/live/yourdomain.com/privkey.pem5. 客户端配置5.1 下载客户端从RustDesk官网或GitHub下载对应平台的客户端Windows: https://github.com/rustdesk/rustdesk/releasesmacOS: 同上Linux: 可使用AppImage或各发行版专用包5.2 连接自建服务器在客户端设置中输入你的服务器地址和公钥打开RustDesk客户端点击右上角菜单 → 设置 → 网络ID服务器你的服务器IP或域名中继服务器同上API服务器留空Key粘贴id_ed25519.pub文件内容注意如果使用域名且配置了SSL记得在高级设置中启用强制加密。6. 高级配置与优化6.1 性能调优对于高负载环境可以调整以下参数修改hbbs的线程数hbbs -t 8根据CPU核心数调整增加文件描述符限制echo * soft nofile 100000 | sudo tee -a /etc/security/limits.conf echo * hard nofile 100000 | sudo tee -a /etc/security/limits.conf6.2 监控与日志RustDesk服务器会生成详细的日志默认位于/var/log/rustdesk-hbbs.log/var/log/rustdesk-hbbr.log可以使用journalctl查看实时日志journalctl -u rustdesk-hbbs -f6.3 备份与恢复定期备份以下内容密钥文件id_ed25519和id_ed25519.pub数据库文件默认为hbbs目录下的db_v2.sqlite3配置文件如果有自定义配置恢复时只需将这些文件放回原位置并重启服务即可。7. 常见问题排查7.1 连接失败如果客户端无法连接服务器按以下步骤排查检查服务器端口是否开放telnet yourdomain.com 21115验证服务是否运行systemctl status rustdesk-hbbs检查防火墙规则sudo ufw status verbose查看错误日志journalctl -u rustdesk-hbbs -n 507.2 高延迟问题如果遇到高延迟确保客户端和服务器之间的网络质量尝试直接IP连接而非域名在中继服务器设置中调整--relay-servers参数7.3 屏幕黑屏远程桌面显示黑屏可能是由于Wayland显示服务器问题切换到X11显卡驱动问题安装专有驱动权限问题确保用户有足够权限8. 维护与更新当有新版本发布时更新步骤下载新版服务器软件停止现有服务sudo systemctl stop rustdesk-hbbs rustdesk-hbbr备份旧版文件和数据库替换可执行文件启动服务sudo systemctl start rustdesk-hbbs rustdesk-hbbr我建议设置一个定期检查更新的计划任务可以每月检查一次GitHub发布页面。