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

相关推荐
0xDevNull2 小时前
JDK多版本切换安装与配置
java·后端
Java编程爱好者2 小时前
1-5 线程池:Thread+阻塞队列+循环
后端
jnrjian2 小时前
Library Cache Load Lock library cache pins are replaced by mutexes
java·后端·spring
用户9416146933653 小时前
Python 批量获取 A 股全市场 K 线数据并计算技术指标(附完整代码)
后端
小江的记录本3 小时前
【Kafka核心】Kafka高性能的四大核心支柱:零拷贝、批量发送、页缓存、压缩
java·数据库·分布式·后端·缓存·kafka·rabbitmq
SamDeepThinking3 小时前
程序员过35岁之前,应该完成的三件事
java·后端·程序员
952363 小时前
SpringAOP
java·后端·学习·spring
zx2859634004 小时前
Laravel6.x新特性全解析
java·后端·spring
Jul1en_4 小时前
Claude 迁移 Codex 工作流迁移与更新
java·服务器·前端·后端·ai编程