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

相关推荐
颜酱15 分钟前
# 02 | 搭骨架:用 LangGraph 编排 12 步工作流(思路)
前端·人工智能·后端
颜酱16 分钟前
02 | 搭骨架:用 LangGraph 编排 12 步工作流
前端·人工智能·后端
嘉伟桑1 小时前
Python调用电价API返回JSON示例:分时电价、现货电价和字段解析
后端
武子康2 小时前
Shippy:确定性工具、会话级 Sandbox 与 Live-Data Eval(4 类收敛 + 7 步实现方案 + 6 类评测指标)
前端·人工智能·后端
我叫黑大帅2 小时前
我为什么单一消费者的场景下,要用 Redis List 当消息队列?
redis·后端·面试
AskHarries2 小时前
文件上传系统
后端
止语Lab3 小时前
好的 DX 不等于少写代码——三种语言的摩擦力设计课
后端
吃饱了得干活3 小时前
别再手动解析 LLM 输出了!LangChain 四种结构化输出方案对比
后端·python·langchain
程序员天天困3 小时前
Arthas trace 命令怎么用?一行定位最慢那行代码
jvm·后端
Huiturn3 小时前
GPT 5.6 连续编码 10 小时,纯 Python 啃下 Word 二进制格式——doc2docx 实现拆解
后端