以往的工作以开发为主,几乎不关心怎么部署和运维。现在由于需要在部署的机器上更新软件、获取数据等等,经常遇到远程访问机器的需求。对于简单的任务,SSH就可以了;但还有一些情况,没有GUI实在不方便操作,远程指挥同事次数少还好,次数一多对两边都是折磨。

由于已经有跳板机可以访问远程设备,故考虑在跳板机上搭建一个内网的远程桌面服务,综合考察下来,RustDesk似乎是个不错的选择。

安装RustDesk Server OSS

RustDesk的自托管服务分RustDesk Server OSS和RustDesk Server Pro。前者免费,但只提供基础的ID服务器、中级服务器实现;后者付费,提供设备管理、2FA、Web后台管理等功能。这里选择RustDesk Server OSS。

在跳板机上安装Docker Engine和Docker Compose,随后执行

mkdir rustdesk-server-oss && cd rustdesk-server-oss
mkdir data
touch compose.yml

Docker Compose的compose.yml参考官方文档给出的示例

services:
  hbbs:
    container_name: hbbs
    image: rustdesk/rustdesk-server:latest
    command: hbbs
    volumes:
      - ./data:/root
    network_mode: "host"

    depends_on:
      - hbbr
    restart: unless-stopped

  hbbr:
    container_name: hbbr
    image: rustdesk/rustdesk-server:latest
    command: hbbr
    volumes:
      - ./data:/root
    network_mode: "host"
    restart: unless-stopped

执行docker compose up -d即可启动服务,随后通过docker compose logs查看日志:

hbbs  | [2026-06-29 03:38:43.913027 +00:00] INFO [src/common.rs:147] Private/public key written to id_ed25519/id_ed25519.pub  
hbbs  | [2026-06-29 03:38:43.913138 +00:00] INFO [src/rendezvous_server.rs:1251] Key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

注意打印的Key(这里以x替代),后续在配置客户端时会使用到。

配置客户端

Release 1.4.8 · rustdesk/rustdesk · GitHub 下载对应平台的客户端软件并安装。Windows下双击安装EXE或MSI即可;Ubuntu 22.04下载deb包并使用dpkg安装:

sudo dpkg -i ./rustdesk-1.4.8-x86_64.deb
sudo apt install -f # 安装缺失的依赖

启动客户端,在 设置 -> 网络 -> ID/中继服务器 里填入ID服务器、中继服务器、Key等信息。RustDesk Server OSS没有API服务器,留空即可。由于RustDesk Server OSS托管在内网的跳板机上,这里ID服务器、中继服务器直接填的内网IP;如果托管在公网VPS上,则可以考虑添加一个二级域名然后解析到服务器上。

在两端的客户端软件都配置好以后,就可以从控制端输入被控端的ID,点击“连接”最后输入密码即可。