RustDesk 自建服务端教程:开源远程桌面,完全掌控你的数据

RustDesk 自建服务端教程:开源远程桌面,完全掌控你的数据

RustDesk 是开源的远程桌面软件,功能对标 TeamViewer 和 AnyDesk,但完全免费,最重要的是可以自建中继服务器。官方公共服务器速度受限,而且数据经过第三方中转;自建服务端后,连接走你自己的服务器,速度快、延迟低、数据不经第三方,适合有隐私要求或频繁使用远程桌面的用户。

工作原理

css 复制代码
客户端 A ──── 信令(ID服务器)────── 客户端 B
        \                          /
         ──── 中继(Relay服务器)──

自建需要两个服务:

  • hbbs:ID 注册和信令服务器(帮助设备找到对方)
  • hbbr:中继服务器(直连失败时中转流量)

服务器配置建议

用途 CPU 内存 带宽
个人/家庭(<5人) 1 核 512MB 10Mbps
小团队(<20人) 2 核 1G 50Mbps

RustDesk 本身很轻量,带宽是瓶颈。远程桌面的流量大约是 2--5Mbps/路(分辨率和帧率影响很大), 雨云服务器 rainyun+com 的大带宽机型非常适合,注册后填这个码 2026off 可以领 5 折券。

Docker Compose 部署(推荐)

bash 复制代码
mkdir -p /opt/rustdesk

cat > /opt/rustdesk/docker-compose.yml << 'EOF'
version: "3.8"

services:
  hbbs:
    image: rustdesk/rustdesk-server:latest
    container_name: rustdesk-hbbs
    command: hbbs
    ports:
      - "21115:21115"    # 信令(UDP)
      - "21116:21116"    # 信令(TCP)
      - "21116:21116/udp"
      - "21118:21118"    # WebSocket
    volumes:
      - ./data:/root
    networks:
      - rustdesk
    depends_on:
      - hbbr
    restart: unless-stopped

  hbbr:
    image: rustdesk/rustdesk-server:latest
    container_name: rustdesk-hbbr
    command: hbbr
    ports:
      - "21117:21117"    # 中继
      - "21119:21119"    # WebSocket 中继
    volumes:
      - ./data:/root
    networks:
      - rustdesk
    restart: unless-stopped

networks:
  rustdesk:
    driver: bridge
EOF

cd /opt/rustdesk
docker compose up -d

开放防火墙端口

bash 复制代码
sudo ufw allow 21115/tcp
sudo ufw allow 21116/tcp
sudo ufw allow 21116/udp
sudo ufw allow 21117/tcp
sudo ufw allow 21118/tcp
sudo ufw allow 21119/tcp

获取服务器密钥

启动后,服务器会在 /opt/rustdesk/data/ 目录生成密钥文件:

bash 复制代码
# 查看公钥(客户端配置时需要填入)
cat /opt/rustdesk/data/id_ed25519.pub

客户端配置

下载 RustDesk 客户端(Windows/macOS/Linux/Android/iOS),然后配置自建服务器:

方法一:GUI 配置

打开 RustDesk → 设置 → 网络 → ID 服务器:

vbnet 复制代码
ID 服务器:你的服务器IP
中继服务器:你的服务器IP(留空则和 ID 服务器相同)
API 服务器:留空
Key:填入上面获取到的公钥内容

方法二:配置文件(批量部署推荐)

在 RustDesk 安装目录放置配置文件 RustDesk.toml

toml 复制代码
rendezvous_server = "服务器IP:21116"
relay_server = "服务器IP:21117"
rs_pk = "公钥内容"

Windows 批量部署脚本:

batch 复制代码
@echo off
set SERVER_IP=你的服务器IP
set SERVER_KEY=公钥内容

reg add "HKLM\SOFTWARE\Policies\RustDesk" /v "rendezvous_server" /t REG_SZ /d "%SERVER_IP%:21116" /f
reg add "HKLM\SOFTWARE\Policies\RustDesk" /v "rs_pk" /t REG_SZ /d "%SERVER_KEY%" /f

部署 RustDesk Web 控制台(可选)

RustDesk Pro 版提供 Web 管理控制台,开源版没有,但可以使用第三方社区版:

bash 复制代码
docker run -d \
  --name rustdesk-api \
  -p 3000:3000 \
  -v /opt/rustdesk/data:/db \
  -e RUSTDESK_API_DB_TYPE=sqlite \
  rustdesk/rustdesk-api-server:latest

访问 http://服务器IP:3000 进行管理。

监控服务状态

bash 复制代码
# 查看服务是否正常
docker compose -f /opt/rustdesk/docker-compose.yml ps

# 查看连接数
docker exec rustdesk-hbbr netstat -an | grep ESTABLISHED | wc -l

# 查看日志
docker compose -f /opt/rustdesk/docker-compose.yml logs -f

更新服务端

bash 复制代码
cd /opt/rustdesk
docker compose pull
docker compose up -d

性能优化建议

对于远程控制延迟高

  • 优先使用雨云服务器国内节点,就近中转延迟最低
  • 确认客户端尝试直连(P2P),实在不行再走中继
  • 降低远程端的显示分辨率和帧率

设置画质/帧率:在 RustDesk 连接建立后,右上角菜单 → 显示 → 调整画质和帧率。

安全加固

bash 复制代码
# 修改服务器监听,只接受有密钥的客户端
# 在 hbbs 启动参数里加 -k _ (强制需要密钥)

docker-compose.yml 里:

yaml 复制代码
command: hbbs -k _    # 空 Key 则拒绝连接,只允许有正确 Key 的客户端

自建 RustDesk 服务端对于有多台设备需要管理或经常远程帮助家人的用户来说非常实用。雨云服务器部署后,所有远程连接都走国内节点中转,速度和稳定性比官方公共服务器好很多,而且数据完全在自己手里,不用担心隐私问题。

相关推荐
步行cgn5 小时前
YAML 的语法规则
spring boot·后端
骇客野人5 小时前
SpringBoot电商系统用户注册、登录、留存及数据埋点设计与落地实施方案
java·spring boot·后端
IT_陈寒8 小时前
React的状态更新坑得我差点加班到天亮
前端·人工智能·后端
码事漫谈9 小时前
一天搭出 80% 的 Agent,然后卡在 95% 到死
后端
leonkay9 小时前
C# 锁机制——【2】深入原理
开发语言·后端·spring·c#·个人开发
江湖十年9 小时前
在 Go 中使用 dyno 包处理动态对象
后端·面试·go
八角丶10 小时前
Node 网络编程 —— TLS 模块
javascript·后端·node.js
山岚的运维笔记10 小时前
mysql 专业笔记 -- 第 8 章:使用变量
运维·数据库·笔记·后端·学习·mysql·dba
平头哥AI11 小时前
Day 01 | go run 跑通第一个 Go 程序,go build 留下一个能拷走的 exe
开发语言·后端·golang
ZGG00312 小时前
线程池详解:从 7 大参数到生产避坑
java·数据库·后端