rustdesk远程控制工具自建

发布于 2025年06月24日

1、注册阿里云账号并实名认证

阿里云-计算,为了无法计算的价值source=5176.11533457&userCode=

2、购买ecs服务器,机器配置1cpu1GB即可

3、安装并启动docker

yum install -y docker
systemctl enable --now docker

4、下载rustdesk镜像

sudo docker image pull rustdesk/rustdesk-server

5、将镜像上传到华为云SWR

后续可以直接在华为云SWR中下载镜像

#longin SWR
docker login -u cn-southwest-2@HST3W8JLNPR7Y6XR44B6 -p b873038d52d20bf058b2bb168b8d26ec135e3b095cec6c71bba5550b93b38292 swr.cn-southwest-2.myhuaweicloud.com
#打标签
sudo docker tag docker.io/rustdesk/rustdesk-server  swr.cn-southwest-2.myhuaweicloud.com/tools/rustdesk/rustdesk-server

#push image
 docker push swr.cn-southwest-2.myhuaweicloud.com/tools/rustdesk/rustdesk-server
#后续再别处使用时,可以直接通过以下命令pull image
sudo docker pull swr.cn-southwest-2.myhuaweicloud.com/tools/rustdesk/rustdesk-server

6、运行容器

mkdir /root/rustdeskdata
#-k 指定key,客户端使用时需用到,-r指定ecs所绑定的公网ip,或公网域名
sudo docker run --name hbbs -v /root/rustdeskdata:/root -v /etc/localtime:/etc/localtime:ro   -v /etc/timezone:/etc/timezone:ro -td --net=host --restart unless-stopped rustdesk/rustdesk-server hbbs -r pubip -k key
sudo docker run --name hbbr -v /root/rustdeskdata:/root -v /etc/localtime:/etc/localtime:ro   -v /etc/timezone:/etc/timezone:ro -td --net=host --restart unless-stopped rustdesk/rustdesk-server hbbr

最后确保容器UP

7、安全组放开UDP/21116、TCP/21115 、TCP/21116 、TCP/21117端口

#相关端口说明
确保在防火墙中打开这些端口:

hbbs:
21114 (TCP): 用于网页控制台,仅在 Pro 版本中可用。
21115 (TCP): 用于 NAT 类型测试。
21116 (TCP/UDP): 请注意 21116 应该同时为 TCP 和 UDP 启用。 21116/UDP 用于 ID 注册和心跳服务。21116/TCP 用于 TCP 打洞和连接服务。
21118 (TCP): 用于支持网页客户端。
hbbr:
21117 (TCP): 用于中继服务。
21119 (TCP): 用于支持网页客户端。
如果您不需要网页客户端支持,可以禁用相应的端口 21118、21119。

8、客户端下载

下载地址: https://my.feishu.cn/drive/folder/PITkfxyGGlBytLdTG1ic5e0UnHb?from=from_copylink

9、客户端安装

运行时在桌面找到RustDesk.使用管理员身份运行

ID服务器是-r指定的内容,key填入-k指定的内容,最后点击确定。

在其他台设备也如此设置,设置完成以后,可以输入对方对应id和密码进行远程控制

在设置-安全中,可以设置固定密码。

10、查看容器日志

附:windows服务端安装

相关资源:https://my.feishu.cn/drive/folder/HyNVfvwnblInp9djCqvcFs5cnhe?from=from_copylink

参考官网教程:WINDOWS & PM2 或者 NSSM – RustDesk文档

1、下载解压NSSM 添加环境变量路径

2、下载服务二进制文件并安装服务

nssm install "hbbs" "C:\Program Files\RustDesk Server\hbbs.exe"

nssm install "hbbr" "C:\Program Files\RustDesk Server\hbbr.exe"

3、设置服务日志存储路径.在打开得界面中找到IO选项,设置输入日志文件路径,填好以后点击Eidt Service。包括正常日志和错误日志。

nssm edit hbbs

nssm edit hbbr

4、启动服务.

nssm start hbbs

nssm start hbbr

5、查看服务状态。注意检查服务是否为自动启动

nssm status hbbs

nssm status hbbr

6、查看hbbs正常日志获取KEY

7、再给服务安装一个客户端,将服务端同时又作为客户端

8、云厂商控制台放开对应21114-21119 TCP端口.21116 UDP

卸载服务

nssm remove servicename

问题1:

我在 Windwos server 2022上安装了 rustdesk客户端。使用手机远程控制的时候能正常连接上,但是没法解锁windows登录界面。发送ctrl + alt +delete无反应。

方案 1:启用"软件安全注意序列"(推荐)

这是最直接的解决方案,允许远程软件发送 Ctrl+Alt+Delete。

操作步骤:

  1. 在 Windows Server 2022 上打开本地安全策略

    • Win + R,输入 secpol.msc,回车

  2. 导航到策略位置

    本地安全策略
    └── 本地策略
    └── 安全选项
    └── 交互式登录:不需要按 CTRL+ALT+DEL

  3. 修改策略

    • 双击该策略

    • 选择 "已启用"

    • 点击"应用" → "确定"

  4. 重启系统(部分情况下需要)

效果:

  • 登录界面不再强制要求 Ctrl+Alt+Delete

  • 直接输入用户名和密码即可登录

  • RustDesk 手机端的虚拟键盘可以直接输入密码

附:docker compose方式

1、单容器(不带web)

#pull镜像
docker pull swr.cn-southwest-2.myhuaweicloud.com/frwucc/rustdesk/rustdesk-server-free:v1.1.15
#创建项目目录
mkdir -p /opt/docker-rustdesk
cd /opt/docker-rustdesk
vi docker-compose.yaml
#内容如下注意修改域名和挂载路径。./data修改为你想挂载的宿主机上的路径。frwuc.xyz修改为你自己的域名
#单容器
version: '3'

services:
  rustdesk-server:
    container_name: rustdesk-server
    ports:
      #- 21114:21114
      - 21115:21115
      - 21116:21116
      - 21116:21116/udp
      - 21117:21117
      #- 21118:21118
      #- 21119:21119
    image: swr.cn-southwest-2.myhuaweicloud.com/frwucc/rustdesk/rustdesk-server-s6:1.1.5-arm64
    environment:
      - "RELAY=frwuc.xyz.com:21117"
      - "ENCRYPTED_ONLY=1"
    volumes:
      - ./data:/data
    restart: unless-stopped
#多容器
version: '3'

networks:
  rustdesk-net:
    external: false

services:
  hbbs:
    container_name: hbbs
    ports:
      - 21115:21115
      - 21116:21116
      - 21116:21116/udp
      #- 21118:21118
    image: swr.cn-southwest-2.myhuaweicloud.com/frwucc/rustdesk/rustdesk-server-free:v1.1.15
    command: hbbs -r frwuc.xyz:21117  # 必须加上这一行!
    volumes:
      - ./data/hbbs:/root
    networks:
      - rustdesk-net
    depends_on:
      - hbbr
    restart: unless-stopped

  hbbr:
    container_name: hbbr
    ports:
      - 21117:21117
      #- 21119:21119
    image: swr.cn-southwest-2.myhuaweicloud.com/frwucc/rustdesk/rustdesk-server-free:v1.1.15
    command: hbbr  # 必须加上这一行!
    volumes:
      - ./data/hbbr:/root
    networks:
      - rustdesk-net
    restart: unless-stopped

# 因为使用 docker host 模式
# 以防您忘记端口:
# 21114 TCP 用于网页控制台,仅在 Pro 版本中可用
# 21115 TCP 用于 NAT 类型测试
# 21116 TCP TCP 打洞
# 21116 UDP 心跳/ID 服务器
# 21117 TCP 中继

2、单容器带web

先创建项目目录

mkdir -p /opt/rustdesk
cd /opt/rustdesk
vi docker-compose.yml

docker-compose.yaml文件内容如下

项目地址:lejianwen/rustdesk-api: Custom Rustdesk Api Server, include web admin ,web client, web client v2 preview and oidc login

 networks:
   rustdesk-net:
     external: false
 services:
   rustdesk:
     ports:
       - 21114:21114
       - 21115:21115
       - 21116:21116
       - 21116:21116/udp
       - 21117:21117
       - 21118:21118
       - 21119:21119
     image: swr.cn-southwest-2.myhuaweicloud.com/frwucc/lejianwen/rustdesk-server-s6:latest-amd64
     environment:
       - RELAY=<relay_server[:port]>
       - ENCRYPTED_ONLY=1
       #- MUST_LOGIN=N
       - TZ=Asia/Shanghai
       - RUSTDESK_API_RUSTDESK_ID_SERVER=<id_server[:21116]>
       - RUSTDESK_API_RUSTDESK_RELAY_SERVER=<relay_server[:21117]>
       - RUSTDESK_API_RUSTDESK_API_SERVER=http://<api_server[:21114]>
       - RUSTDESK_API_KEY_FILE=/data/id_ed25519.pub
       #- RUSTDESK_API_JWT_KEY=xxxxxx # jwt key#当- MUST_LOGIN=Y 时启用,必须复杂,这里就不使用了
     volumes:
       - ./data/server:/data
       - ./data/api:/app/data #将数据库挂载
     networks:
       - rustdesk-net
     restart: unless-stopped
       

启动容器

docker compose up -d
#查看web登录密码.账号admin
docker compose logs



评论