RustDesk 完整笔记

环境说明

  • 服务端:银河麒麟 Linux(amd64),使用 zip 二进制包部署 hbbs + hbbr(非Docker镜像)
  • 客户端:全部 Windows(主控、被控)
  • 组网:内网为主(机房运维场景)
  • 需求:hbbs、hbbr 设置开机自启(systemd)

一、麒麟服务端部署(zip 二进制包)

1. 下载解压

bash 复制代码
# 下载官方服务端zip(amd64)
wget https://github.com/rustdesk/rustdesk-server/releases/download/1.1.15/rustdesk-server-linux-amd64.zip
# 解压
unzip rustdesk-server-linux-amd64.zip
# 放到固定目录(推荐 /opt/rustdesk-server)
sudo mv amd64 /opt/rustdesk-server
cd /opt/rustdesk-server

目录结构:

复制代码
/opt/rustdesk-server/
├─ hbbs
├─ hbbr

2. 首次启动生成密钥(只做一次)

bash 复制代码
# 后台临时运行一次生成密钥
nohup ./hbbs &
sleep 3
pkill hbbs

执行完毕目录自动生成:

  • id_ed25519 私钥(保密,不要外传
  • id_ed25519.pub 公钥(Windows 客户端全部要用

查看公钥,完整复制保存,不能加换行、空格

bash 复制代码
cat id_ed25519.pub

3. 防火墙放行端口(麒麟 firewalld)

bash 复制代码
sudo firewall-cmd --permanent --add-port=21115/tcp
sudo firewall-cmd --permanent --add-port=21116/tcp
sudo firewall-cmd --permanent --add-port=21116/udp
sudo firewall-cmd --permanent --add-port=21117/tcp
sudo firewall-cmd --permanent --add-port=21118/tcp
sudo firewall-cmd --permanent --add-port=21119/tcp
sudo firewall-cmd --reload

端口用途:

  • hbbs:21115(TCP)、21116(TCP+UDP)、21118(TCP 网页主控)
  • hbbr:21117(TCP)、21119(TCP)

4. systemd 开机自启(重点!zip 二进制方案)

4.1 创建 hbbs 服务文件
bash 复制代码
vim /etc/systemd/system/rustdesk-hbbs.service

内容:

ini 复制代码
[Unit]
Description=RustDesk hbbs (ID/信令服务器)
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/opt/rustdesk-server
ExecStart=/opt/rustdesk-server/hbbs
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
4.2 创建 hbbr 服务文件
bash 复制代码
vim /etc/systemd/system/rustdesk-hbbr.service

内容:

ini 复制代码
[Unit]
Description=RustDesk hbbr (中继服务器)
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/opt/rustdesk-server
ExecStart=/opt/rustdesk-server/hbbr
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
4.3 加载、启用、启动服务
bash 复制代码
# 重载systemd识别新服务
sudo systemctl daemon-reload

# 设置开机自启
sudo systemctl enable rustdesk-hbbs
sudo systemctl enable rustdesk-hbbr

# 立即启动
sudo systemctl start rustdesk-hbbs
sudo systemctl start rustdesk-hbbr
4.4 日常运维命令
bash 复制代码
# 查看状态
systemctl status rustdesk-hbbs
systemctl status rustdesk-hbbr

# 实时日志
journalctl -u rustdesk-hbbs -f
journalctl -u rustdesk-hbbr -f

# 重启
systemctl restart rustdesk-hbbs
systemctl restart rustdesk-hbbr

✅ 重启麒麟服务器后,hbbs、hbbr 将自动拉起。

二、Windows 客户端配置(所有 Windows 统一配置)

1. 客户端下载

官网:https://rustdesk.com/

Github:https://github.com/rustdesk/rustdesk/releases

安装包:RustDeskSetup.exe

2. 单台手动图形配置

  1. 打开 RustDesk → 右上角 ⋮ → 设置 → 网络
  2. 解锁网络设置
  3. 填写:
  • ID服务器:麒麟服务器IP:21116
  • 中继服务器:麒麟服务器IP:21117
  • API服务器:留空
  • Key:粘贴 id_ed25519.pub 完整字符串
  1. 应用保存
  2. 首页底部 就绪(绿色) = 连通成功

重要:主控、被控 Windows 全部都要填这套参数,只配一侧无法连接。

3. Windows 批量静默部署(机房批量被控机)

3.1 静默安装

管理员 CMD 执行:

cmd 复制代码
RustDeskSetup.exe /install /silent
3.2 注册表脚本(管理员运行,持久策略)

新建 RustDesk_Config.bat

batch 复制代码
@echo off
set "SERVER=麒麟服务器IP:21116"
set "RELAY=麒麟服务器IP:21117"
set "PUBKEY=粘贴你的完整公钥"

reg add "HKLM\SOFTWARE\Policies\RustDesk" /v "rendezvous_server" /t REG_SZ /d "%SERVER%" /f
reg add "HKLM\SOFTWARE\Policies\RustDesk" /v "relay_server" /t REG_SZ /d "%RELAY%" /f
reg add "HKLM\SOFTWARE\Policies\RustDesk" /v "rs_pk" /t REG_SZ /d "%PUBKEY%" /f

HKLM 策略:机器级别,重装客户端配置不丢失。

4. Windows 被控端安全优化(无人值守)

  1. 设置 → 安全 → 设置固定永久密码(不要只用临时密码)
  2. 开启:开机自启、最小化到托盘
  3. 关闭:自动接受连接(必须手动输入密码)
  4. 按需关闭:文件传输、剪贴板同步(工控/涉密机房建议关闭)

三、网页端主控(可选,无需装客户端)

浏览器访问:

复制代码
http://麒麟服务器IP:21118

⚠️ 限制:

  • 仅可作为主控,不能被控
  • 文件传输、剪贴板、音频功能受限
  • 正式运维优先 Windows 原生客户端

四、连接原理

  1. Windows 客户端启动 → 连接麒麟 hbbs(21116)注册ID、心跳、NAT打洞
  2. 主控输入被控ID发起连接
  3. 优先 P2P 直连(不消耗麒麟服务器带宽)
  4. 直连失败自动走 hbbr(21117)中继转发画面

五、故障排查(按顺序)

  1. Windows 客户端状态不是就绪

    • 测试:Windows CMD telnet 麒麟IP 21116
    • 检查:麒麟防火墙、中间交换机/安全策略、21116 TCP+UDP 是否放行
  2. 状态显示就绪,但无法建立连接

    • 公钥复制不全、存在换行/空格(最高频错误)
    • 某台 Windows 未配置服务器信息
    • 21116 UDP 被拦截,无法P2P
  3. 能连上但卡顿、延迟高

    • 未建立P2P,全部走中继;检查路由器UPnP、NAT类型
    • 客户端降低分辨率、关闭硬件加速
  4. 麒麟重启后服务没启动

    bash 复制代码
    systemctl status rustdesk-hbbs
    systemctl status rustdesk-hbbr

    未启用自启则重新执行 systemctl enable

六、重要安全注意事项

  1. id_ed25519(私钥)妥善保管,不要泄露
  2. id_ed25519.pub 公钥不要随意分发;拿到公钥+麒麟IP可尝试接入设备
  3. 内网环境:麒麟防火墙限制仅内网网段访问端口,禁止对公网开放
  4. 定期备份 /opt/rustdesk-server/ 目录(密钥在里面)

七、关键清单(备份保存)

  • 麒麟服务器IP:________
  • ID服务器地址:IP:21116
  • 中继服务器地址:IP:21117
  • 公钥:________________________________________________
  • 服务目录:/opt/rustdesk-server
  • systemd服务名:rustdesk-hbbs / rustdesk-hbbr
相关推荐
雨田言炎7 小时前
STM32专题之内部FLASH详解
笔记·stm32·单片机
HiDev_8 小时前
【非标自动化】2、认识元器件(运动控制模块)
运维·自动化
一路向北finish8 小时前
《CentOS 7 搭建 Hadoop 3.3.6 分布式集群:NFS 共享方案完整实操》
linux·运维·hadoop·分布式·centos
xiaoxiangsiyan8 小时前
全网IPv6规模化改造实战指南
运维·网络·笔记·云原生·自动化
k4m7v2pz8 小时前
ESP32-S3 + I2S 麦克风实时音频流静音问题排查:从网络到AGC的谬误溯源
rust·音频·esp32·agc·实时监听·静音排查
杨云龙UP9 小时前
Toad for Oracle 调整表空间 Datafile 大小:Usage、Used Pct of Max 与 RESIZE 实战
linux·运维·服务器·数据库·oracle·dba·数据库运维
SomeB1oody9 小时前
【RustyML入门】7.4. 按需裁剪与模块化集成
开发语言·后端·机器学习·rust·教程
Wang's Blog9 小时前
PostgreSQL笔记59:行列级权限机制与数据脱敏实践
数据库·笔记·postgresql
Source.Liu9 小时前
【A11】基于 PDF 渲染引擎的统一文档界面架构设计
rust·pdf
疯狂打码的少年9 小时前
【数据结构】选择类排序:简单选择与堆排序
java·数据结构·笔记·算法