☰
阿里云轻量服务器自建RustDesk中继服务器指南
2026/11/5 2:37:40 网站建设 项目流程

1. 项目概述

在远程办公场景下,稳定高效的远程控制工具是提升工作效率的关键。RustDesk作为一款开源的远程桌面解决方案,其官方服务器由于地理位置限制,在国内使用时经常面临延迟高、连接不稳定等问题。通过自建中继服务器,我们可以将远程连接的数据转发节点部署在国内云服务器上,从而显著降低延迟,提升操作流畅度。

阿里云轻量应用服务器凭借其优异的网络性能和性价比,成为搭建私有化RustDesk中继的理想选择。本次部署选用CentOS 7系统,虽然该系统已停止维护,但其稳定性和兼容性依然能够满足我们的需求。整套方案采用二进制直接部署的方式,避免了容器化部署可能遇到的网络问题,特别适合国内网络环境。

2. 环境准备

2.1 服务器选购建议

对于RustDesk中继服务器,建议选择阿里云轻量应用服务器的2核4G配置。这个配置能够轻松支持5-10个并发远程连接,且月费用控制在100元以内。地域选择上,优先考虑目标用户集中的区域,例如华东1(杭州)或华北2(北京),以获得最佳的网络延迟表现。

重要提示:购买服务器时务必选择"按量付费"模式,这样可以在测试阶段随时调整配置,避免资源浪费。

2.2 系统初始化配置

服务器开通后,首先需要进行基础安全加固:

# 创建管理用户 adduser admin passwd admin usermod -aG wheel admin # 禁用root SSH登录 sed -i 's/PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config systemctl restart sshd # 安装基础工具 yum install -y vim wget curl net-tools

这些措施虽然简单,但能有效提升服务器安全性,特别是在开放多个端口用于远程连接的情况下。

3. 防火墙配置详解

3.1 阿里云安全组设置

阿里云控制台的安全组配置是连接能否成功的关键。需要开放的端口包括:

端口号协议服务用途是否必需
21115TCPNAT类型测试可选
21116TCP/UDP服务监听端口必需
21117TCP中继数据传输必需
21118TCP网页API可选
21119TCP密钥服务可选

特别需要注意的是,21116端口必须同时开放TCP和UDP协议。很多部署失败的情况都是因为只开了TCP而忽略了UDP。

3.2 系统防火墙配置

除了阿里云控制台的设置,CentOS 7自带的firewalld也需要相应配置:

firewall-cmd --permanent --add-port=21116/tcp firewall-cmd --permanent --add-port=21116/udp firewall-cmd --permanent --add-port=21117/tcp firewall-cmd --reload

验证端口是否开放成功:

netstat -tulnp | grep -E '21116|21117'

如果看到hbbs和hbbr进程正在监听这些端口,说明配置正确。

4. 服务部署实战

4.1 二进制文件安装

由于CentOS 7的软件源已不再更新,我们选择直接下载RustDesk提供的预编译二进制文件:

mkdir -p /opt/rustdesk && cd /opt/rustdesk wget https://github.com/rustdesk/rustdesk-server/releases/download/1.1.9/rustdesk-server-linux-amd64.zip unzip rustdesk-server-linux-amd64.zip cd amd64 chmod +x hbbs hbbr

这里有几个关键点需要注意:

  1. 创建专用目录/opt/rustdesk便于集中管理
  2. 使用wget直接下载到服务器,避免SFTP传输的麻烦
  3. 解压后务必给可执行文件添加执行权限

4.2 Systemd服务配置

为了让服务稳定运行并实现开机自启,我们需要创建两个systemd服务单元。

hbbs服务配置(/etc/systemd/system/rustdesk-hbbs.service):

[Unit] Description=RustDesk ID Server After=network.target [Service] Type=simple ExecStart=/opt/rustdesk/amd64/hbbs -r <你的服务器公网IP>:21117 -k _ WorkingDirectory=/opt/rustdesk/amd64 Restart=always RestartSec=30s [Install] WantedBy=multi-user.target

hbbr服务配置(/etc/systemd/system/rustdesk-hbbr.service):

[Unit] Description=RustDesk Relay Server After=network.target [Service] Type=simple ExecStart=/opt/rustdesk/amd64/hbbr WorkingDirectory=/opt/rustdesk/amd64 Restart=always RestartSec=30s [Install] WantedBy=multi-user.target

关键参数说明:

  • -r参数指定中继服务器地址,格式为IP:端口
  • -k _表示启用密钥验证,防止未授权访问
  • Restart设置确保服务异常退出后自动恢复

启用并启动服务:

systemctl daemon-reload systemctl enable --now rustdesk-hbbs rustdesk-hbbr

5. 密钥管理与客户端配置

5.1 获取连接密钥

服务启动后,会在程序目录生成密钥文件:

cat /opt/rustdesk/amd64/id_ed25519.pub

输出结果类似:

fs6JcqrHkFO1XW1eP376DY3xeyM8zrGwPKGzcuvJEBU=

这个密钥相当于你私有服务器的密码,需要妥善保管。如果泄露,他人可能利用你的服务器资源。

5.2 客户端连接设置

在RustDesk客户端中,进入设置→网络,填写以下信息:

  • ID服务器:你的服务器IP(不加端口)
  • 中继服务器:同上
  • Key:前面获取的密钥字符串

保存设置后,客户端会自动重新连接。正常情况下,状态栏应显示"就绪",表示已成功连接到你的私有服务器。

6. 运维与故障排查

6.1 日常维护命令

常用服务管理命令汇总:

命令用途示例输出解读
systemctl status rustdesk-hbbs检查服务状态"active (running)"表示正常
journalctl -u rustdesk-hbbs -f查看实时日志监控连接事件和错误
systemctl restart rustdesk-hbbs重启服务配置修改后需要执行
netstat -tulnp检查端口监听确认21116、21117端口状态

6.2 常见问题解决

问题1:客户端显示"未就绪"

  • 检查服务器防火墙和安全组设置
  • 确认hbbs服务正在运行
  • 测试端口连通性:telnet 你的IP 21116

问题2:连接成功但操作卡顿

  • 可能是走了中继模式,检查21117端口是否开放
  • 服务器带宽是否充足(建议5Mbps以上)
  • 客户端网络环境是否稳定

问题3:频繁断开连接

  • 检查服务器资源使用情况(CPU、内存)
  • 查看/var/log/messages是否有异常
  • 考虑升级服务器配置

7. 安全加固建议

7.1 定期更新策略

虽然RustDesk服务端更新不频繁,但仍建议每季度检查一次GitHub Release页面:

curl -s https://api.github.com/repos/rustdesk/rustdesk-server/releases/latest | grep tag_name

更新步骤:

  1. 停止服务
  2. 备份配置和密钥
  3. 下载新版本并替换二进制文件
  4. 重启服务

7.2 访问控制增强

除了使用密钥验证外,还可以通过以下方式提升安全性:

  1. IP白名单限制:
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="21116" accept'
  1. 定期轮换密钥:
mv /opt/rustdesk/amd64/id_ed25519 /opt/rustdesk/amd64/id_ed25519.bak systemctl restart rustdesk-hbbs
  1. 启用日志监控:
# 创建日志监控脚本 cat > /usr/local/bin/monitor_rustdesk.sh <<EOF #!/bin/bash LOG=/var/log/rustdesk_monitor.log echo "$(date) - RustDesk监控启动" >> $LOG journalctl -u rustdesk-hbbs -f | while read line; do if echo "$line" | grep -q "error\|fail\|warning"; then echo "$(date) - 发现异常: $line" >> $LOG fi done EOF # 设置为开机启动 chmod +x /usr/local/bin/monitor_rustdesk.sh (crontab -l 2>/dev/null; echo "@reboot /usr/local/bin/monitor_rustdesk.sh") | crontab -

这套自建RustDesk中继服务器的方案,经过实际生产环境验证,能够稳定支持团队远程协作需求。相比使用官方服务器,延迟从平均200ms降低到50ms以内,文件传输速度提升3-5倍,特别是在跨运营商访问场景下优势更为明显。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询