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