零成本自建 RustDesk 远程控制平台 —— 单容器 80 MB 内存方案

意外富翁 · 1个月前 · 技术 · 63 · 0

目标:10 分钟搭好「打开浏览器就能看所有机器」的 RustDesk 私有中继,全开源、零授权费,内存占用 ≈ 40 MB,日志 ≤ 10 MB,适用于 256 MB 小 VPS / NAS / 树莓派。


一、为什么选「单容器 All-in-One」

  1. 官方社区版免费,但无 Web 设备列表
  2. 第三方 Django 面板功能全,镜像 200 MB+
  3. lejianwen/rustdesk-api:full-s6 (RustDesk API
    • 把 hbbs / hbbr / Web 控制台打进同一个 alpine 镜像
    • 体积 88 MB,常驻 30-40 MB,s6-overlay 保活
    • 支持浏览器直连、设备分组、OIDC(可选)
    • 一条 docker-compose up -d 即可,维护最省心

二、准备

  • 一台能上网的 Linux 主机(Debian / Ubuntu / CentOS 均可)
  • 已安装 Docker & Docker-Compose(v2.0+)
  • 开放端口:21114-21119 tcp + 21116 udp
端口 作用
21114 Web 控制台 / API
21115 NAT 类型检测
21116 tcp/udp ID 注册与心跳
21117 中继数据
21118 Web 客户端(浏览器直接远控)
21119 中继 WebSocket

三、一键 Compose 文件

把下面内容保存为 docker-compose.yml

version: '3.8'

networks:
  rustdesk-net:
    external: false

services:
  rustdesk:
    image: lejianwen/rustdesk-api:full-s6
    container_name: rustdesk
    ports:                                       # 需要哪些开哪些
      - 21114:21114
      - 21115:21115
      - 21116:21116/tcp
      - 21116:21116/udp
      - 21117:21117
      - 21118:21118
      - 21119:21119
    environment:
      # ❗️把 192.168.1.100 换成你主机的公网 IP 或域名
      RELAY: 192.168.1.100:21117
      RUSTDESK_API_RUSTDESK_ID_SERVER: 192.168.1.100:21116
      RUSTDESK_API_RUSTDESK_RELAY_SERVER: 192.168.1.100:21117
      RUSTDESK_API_RUSTDESK_API_SERVER: http://192.168.1.100:21114
      ENCRYPTED_ONLY: 1            # 强制加密,0 可关闭
      TZ: Asia/Shanghai
    volumes:
      - ./rustdesk-data/server:/data          # 存放 key
      - ./rustdesk-data/server:/app/conf/data # API 读 key
      - ./rustdesk-data/api:/app/data         # sqlite + 上传
    networks:
      - rustdesk-net
    restart: unless-stopped
    mem_limit: 96m                # 实测 40 MB 左右,给 96 MB 安全
    logging:
      driver: json-file
      options:
        max-size: 5m               # 单个文件 5 MB
        max-file: "2"              # 最多 2 个,合计 ≤ 10 MB

四、启动

# 1. 创建目录
mkdir -p rustdesk-data/server rustdesk-data/api

# 2. 拉起容器
docker compose up -d

# 3. 看日志
docker compose logs -f

首次启动会在 ./rustdesk-data/server 生成 id_ed25519 / id_ed25519.pub,这就是 RustDesk 的公钥;保存好 id_ed25519(私钥),以后客户端连接需要。


五、Web

  1. 浏览器访问 http://<你的IP>:21114
  2. 初次安装管理员为用户名为 admin,密码将在控制台打印,可以通过命令行更改密码
  3. 登录后即进入「设备」页面,目前为空。

六、客户端配置(Windows / macOS / Linux / Android 同理)

字段
ID 服务器 <你的IP>:21116
中继服务器 <你的IP>:21117
API 服务器 http://<你的IP>:21114
Key rustdesk-data/server/id_ed25519.pub 内容复制进去(可选,强制加密时必须)

填写后点击右上角「登录」→ 用刚才的管理员账号登录 → 当前设备自动出现在 Web 列表。
以后所有登录同一账号的机器都会实时同步到「设备」页,实现「打开浏览器就能看到全部机器」。


七、常用运维命令

# 查看实时资源
docker stats rustdesk

# 重启服务
docker compose restart

# 升级镜像
docker compose pull && docker compose up -d

# 备份 key + 数据库
tar -zcf rustdesk-backup-$(date +%F).tar.gz rustdesk-data/

八、HTTPS(可选)

宿主机装 Nginx,申请 Let's Encrypt 证书,反向代理 21114 即可。
镜像已识别 X-Forwarded-Proto,无需额外配置。


九、内存 & 磁盘占用实测

项目 数值
镜像大小 88 MB
常驻内存 30-40 MB
日志上限 10 MB
SQLite < 1 MB(1000 台设备以内)

256 MB 小 VPS 也能轻松跑满带宽。


十、常见问题速查

  1. 客户端登录后设备不显示
    → 确认客户端「API 服务器」填的是 http://<IP>:21114 且登录账号与 Web 一致。

  2. Web 打不开 / 无限加载
    → 检查 21114 是否放行;看日志 docker logs rustdesk

  3. 中继连不上
    → 21116 tcp+udp、21117 tcp 必须放行;确认 RELAY 环境变量里的 IP 是公网地址。


十一、总结

  • 单容器 = hbbs + hbbr + Web 控制台,升级、备份、迁移都只要拷一个文件夹
  • 全开源 → 零授权费,商业用途也放心
  • 40 MB 内存 + 10 MB 日志 → 小主机、NAS、树莓派零压力

docker-compose up -d 敲下去,10 分钟后你就能随时随地「打开浏览器 → 登录 → 一键远程」,Enjoy!

已复制到剪贴板

评论 0 条

暂无评论,来种下第一颗种子。