保姆级教程:在CentOS 7上从Node.js到RustDesk Server的完整自建流程(含防火墙配置)
从零搭建RustDesk私有远程控制服务器:CentOS 7全流程详解
第一次在云服务器上部署远程控制工具时,我盯着命令行界面手足无措的样子还历历在目。如今RustDesk凭借其开源特性和媲美TeamViewer的流畅体验,正成为越来越多开发者和中小团队自建远程协助方案的首选。本文将带你完整走通从系统环境准备到最终客户端连接的全过程,特别针对国内云服务器环境优化了每个环节。
1. 环境准备与基础配置
在腾讯云或阿里云上新建的CentOS 7系统就像一张白纸,我们需要先搭建好运行RustDesk Server所需的基础环境。不同于简单复制粘贴命令,理解每个步骤背后的原理能让你在遇到问题时快速定位。
1.1 系统更新与依赖安装
刚拿到手的云服务器建议先执行全面更新:
# 更新系统所有已安装包 sudo yum update -y # 安装基础开发工具链 sudo yum groupinstall "Development Tools" -y # 安装必要的依赖库 sudo yum install -y openssl-devel wget unzip firewalld注意:如果使用的是最小化安装的CentOS,可能缺少基础工具如wget,可先执行
yum install -y wget
1.2 选择合适的Node.js版本
RustDesk的Signal服务器需要Node.js环境,但直接安装最新版可能遇到兼容性问题。经过多次测试,Node.js 16.x版本在稳定性和性能上表现最佳:
# 下载预编译的Node.js二进制包 cd /usr/local sudo wget https://cdn.npmmirror.com/binaries/node/v16.18.1/node-v16.18.1-linux-x64.tar.gz # 解压到当前目录 sudo tar -zxvf node-v16.18.1-linux-x64.tar.gz配置环境变量时,建议使用全局profile而非用户级配置,确保所有用户都能访问:
sudo tee -a /etc/profile <<EOF export NODE_HOME=/usr/local/node-v16.18.1-linux-x64 export PATH=\$PATH:\$NODE_HOME/bin EOF # 立即生效 source /etc/profile验证安装是否成功:
node -v # 应显示v16.18.1 npm -v # 应显示8.19.21.3 优化npm镜像源
国内服务器直接连接npm官方源速度极慢,切换为淘宝镜像能显著提升效率:
npm config set registry https://registry.npmmirror.com # 验证配置 npm config get registry2. 部署RustDesk核心服务
2.1 安装进程管理工具PM2
生产环境必须使用进程守护工具,PM2不仅能保持服务持续运行,还提供日志管理和监控功能:
npm install pm2@latest -g # 验证安装 pm2 --version2.2 获取并配置RustDesk Server
从GitHub下载最新稳定版二进制文件(截至发稿时1.1.10-3为最新版):
cd /usr/local sudo wget https://ghproxy.com/https://github.com/rustdesk/rustdesk-server/releases/download/1.1.10-3/rustdesk-server-linux-amd64.zip sudo unzip rustdesk-server-linux-amd64.zip -d rustdesk-server启动服务时添加-k _参数启用加密(下划线为占位符,实际使用应替换为复杂密钥):
cd rustdesk-server/amd64 pm2 start hbbs -- -k _ pm2 start hbbr -- -k _设置开机自启并保存当前进程列表:
pm2 save pm2 startup3. 网络与安全配置
3.1 系统防火墙设置
CentOS 7默认使用firewalld,需要放行RustDesk的通信端口:
# TCP端口 for port in {21115..21119}; do sudo firewall-cmd --permanent --add-port=$port/tcp done # UDP端口(重要:P2P穿透需要) sudo firewall-cmd --permanent --add-port=21116/udp # 重新加载配置 sudo firewall-cmd --reload验证端口是否开放:
firewall-cmd --list-ports | grep 211153.2 云平台安全组配置
大多数云服务器需要额外配置安全组规则,以阿里云为例:
- 登录ECS控制台 → 安全组 → 配置规则
- 添加以下入方向规则:
- 协议类型:TCP,端口范围:21115/21119
- 协议类型:UDP,端口范围:21116/21116
- 源IP可设置为0.0.0.0/0或指定IP段增强安全性
3.3 获取连接密钥
每个RustDesk服务器实例都有唯一的加密密钥,客户端连接时需要验证:
cat /usr/local/rustdesk-server/amd64/id_ed25519.pub重要:此密钥相当于服务器密码,请妥善保管不要泄露
4. 客户端连接与优化
4.1 下载安装客户端
从官网https://rustdesk.com/下载对应平台客户端,安装后进入设置 → 网络:
- ID服务器:填写云服务器公网IP
- Key:粘贴之前获取的密钥
4.2 常见问题排查
- 连接超时:检查安全组和防火墙是否放行所有必要端口
- 显示在线但无法控制:通常是因为UDP 21116端口未开放
- 频繁断开:尝试在hbbs/hbbr启动时添加
-r your-relay-server-ip:21117参数指定中继服务器
4.3 性能调优建议
对于多人使用的服务器,可调整PM2配置:
pm2 restart hbbs -- -k _ -m 1024 pm2 restart hbbr -- -k _ -m 1024其中-m参数限制内存使用(单位MB),根据服务器配置调整。8核16G的云服务器建议设置为:
- hbbs:2048MB
- hbbr:4096MB
实际部署中遇到最棘手的问题是UDP端口被运营商限制,这时只能依赖TCP中继模式。在客户端设置中将"直接连接"选项关闭,所有流量将通过21117端口中转,虽然速度略有下降但连接稳定性大幅提升。
