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用户,还需要额外安装pipewire:
sudo 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] Description=RustDesk ID Server After=network.target [Service] Type=simple ExecStart=/path/to/hbbs WorkingDirectory=/path/to/ User=root Group=root Restart=always RestartSec=5s [Install] WantedBy=multi-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_ed25519
- id_ed25519.pub
这些文件位于hbbs所在目录。pub文件中的公钥需要提供给客户端使用。
4.3 域名与SSL配置(可选)
为了更好的安全性和易用性,建议配置域名和SSL证书:
- 将域名A记录指向你的服务器IP
- 使用Let's 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/releases
- macOS: 同上
- 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 50
7.2 高延迟问题
如果遇到高延迟:
- 确保客户端和服务器之间的网络质量
- 尝试直接IP连接而非域名
- 在中继服务器设置中调整
--relay-servers参数
7.3 屏幕黑屏
远程桌面显示黑屏可能是由于:
- Wayland显示服务器问题(切换到X11)
- 显卡驱动问题(安装专有驱动)
- 权限问题(确保用户有足够权限)
8. 维护与更新
当有新版本发布时,更新步骤:
- 下载新版服务器软件
- 停止现有服务:
sudo systemctl stop rustdesk-hbbs rustdesk-hbbr - 备份旧版文件和数据库
- 替换可执行文件
- 启动服务:
sudo systemctl start rustdesk-hbbs rustdesk-hbbr
我建议设置一个定期检查更新的计划任务,可以每月检查一次GitHub发布页面。