1. 项目背景与核心需求
去年帮客户部署远程办公方案时,发现RustDesk自建中继服务器的中文教程普遍存在两个问题:要么是2022年的陈旧方案,要么直接照搬官方文档缺少实战细节。这次在阿里云CentOS 7环境下的完整部署实录,将重点解决以下痛点:
- 新版RustDesk(1.2.3+)的编译参数变化
- Systemd服务配置的权限陷阱(特别是SELinux环境)
- 阿里云安全组与防火墙的联动配置
- 中继服务器的高并发优化参数
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备与依赖安装
2.1 阿里云ECS选型建议
实测发现中继服务器对CPU要求不高但非常吃带宽。建议选择:
- 计算型c7.large(2vCPU/4GiB)
- 带宽按需计费(峰值100Mbps)
- 系统盘选择高效云盘(40GB足够)
注意:不要选择突发性能实例t系列,遇到流量高峰会导致CPU积分耗尽
2.2 基础环境配置
bash复制# 关闭防火墙(后续改用安全组)
systemctl stop firewalld
systemctl disable firewalld
# 安装EPEL仓库
yum install -y epel-release
# 安装开发工具链
yum groupinstall -y "Development Tools"
yum install -y cmake git openssl-devel
3. RustDesk服务端编译安装
3.1 源码获取与编译
bash复制git clone https://github.com/rustdesk/rustdesk-server
cd rustdesk-server
关键编译参数说明:
-DCMAKE_BUILD_TYPE=Release必须指定-DBUILD_SHARED_LIBS=off避免动态库依赖问题
完整编译命令:
bash复制mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=off ..
make -j$(nproc)
3.2 目录结构与权限配置
建议将编译产物部署到/opt/rustdesk-server:
bash复制mkdir -p /opt/rustdesk-server/{bin,logs,conf}
cp hbbr hbbs /opt/rustdesk-server/bin/
chown -R nobody:nobody /opt/rustdesk-server
4. Systemd服务配置实战
4.1 服务单元文件编写
/etc/systemd/system/hbbs.service 配置示例:
ini复制[Unit]
Description=RustDesk ID Server
After=network.target
[Service]
User=nobody
Group=nobody
WorkingDirectory=/opt/rustdesk-server
ExecStart=/opt/rustdesk-server/bin/hbbs -k _
Restart=always
RestartSec=3
[Install]
WantedBy=multi-user.target
4.2 SELinux策略处理
遇到operation not permitted错误时需要:
bash复制# 检查审计日志
ausearch -m avc -ts recent
# 添加策略规则
semanage fcontext -a -t bin_t "/opt/rustdesk-server/bin/.*"
restorecon -Rv /opt/rustdesk-server
5. 网络与安全配置
5.1 阿里云安全组规则
必须开放以下端口:
- TCP 21115-21119
- UDP 21116
- TCP 33333(Web管理端)
5.2 流量转发优化
编辑/etc/sysctl.conf:
conf复制net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_fin_timeout = 30
6. 客户端连接测试
在客户端配置文件中指定:
conf复制rendezvous-server = 'your-server-ip'
relay-server = 'your-server-ip'
api-server = 'https://your-server-ip:21114'
7. 性能监控与维护
7.1 实时状态查看
bash复制journalctl -u hbbs -f
ss -tulnp | grep rustdesk
7.2 日志轮转配置
创建/etc/logrotate.d/rustdesk:
conf复制/opt/rustdesk-server/logs/*.log {
daily
missingok
rotate 7
compress
delaycompress
notifempty
create 0640 nobody nobody
}
8. 常见问题排查
8.1 端口占用问题
bash复制# 查看端口冲突
netstat -tulnp | grep -E '21115|21116|21117|21118|21119'
8.2 证书生成失败
手动生成密钥对:
bash复制openssl req -x509 -newkey rsa:2048 -nodes -keyout key.pem -out cert.pem -days 365
9. 升级与备份策略
建议每周通过cronjob自动检查更新:
bash复制0 3 * * 1 cd /opt/rustdesk-server && git pull && cmake --build build --target clean && make -j$(nproc)
关键配置文件备份命令:
bash复制tar -czvf rustdesk-backup-$(date +%Y%m%d).tar.gz /opt/rustdesk-server/conf
