【rustdesk】客户端和服务端的安装和部署(自建服务器,docker,远程控制开源软件rustdesk)

【rustdesk】客户端和服务端的安装和部署(自建服务器,docker)

一、官方部署教程

https://rustdesk.com/docs/zh-cn/client/mac/

官方服务端下载地址

https://github.com/rustdesk/rustdesk-server/releases

我用的docker感觉非常方便,没有直接下载服务端。

官方客户端下载地址

https://github.com/rustdesk/rustdesk/releases

如果访问不了github,可以留言要下载的版本(Architecture+客户端类型),我下载后发到csdn上。

二、我的安装示例详细步骤

1、介绍

服务器做服务端,服务端主要部署HBBS(ID/注册服务器)、HBBR(中继服务器),文章最后会介绍HBBS、HBBR都是做什么的。

mac、windows、安卓做客户端,用来远程控制或者被控制

服务端我安装的是V1.1.12版本,客户端1.3.2版本

题外废话:

我用rustdesk的目的是家里有nuc迷你主机,想要没事的时候远程控制家里的电脑玩。家里电脑可以开几个虚拟机,远程练习linux等或者部署了一些todolist、看板之类的东西(比较占内存,云服务器太贵)再内网穿透。

阿里云的这个99一年3M带宽不限流量,配置一般但是用它的带宽感觉还是很不错的,其他用途都写在这个好玩儿分享专栏中了,另外最近国产的这个雨云也很火超便宜,我的很多朋友都在用,如果不是阿里云我还有自己其他业务需要稳定运行,就会买雨云了。

2、服务端安装

(1)docker、docker-compose安装

想到小伙伴们的服务器系统可能都不同,所以花了一天的时间,用虚拟机分别安装了Ubuntu、CentOS、Debian等系统的docker、docker-compose。

点击这篇博客,这里就不再赘述怎么安装docker了。

(2)配置docker镜像,docker的rustdesk国内版本有点滞后了,启动会报错,所以需要配置一下

/etc/docker路径下,修改daemon.json文件(没有则新建),内容为

{
  "dns": ["8.8.8.8", "8.8.4.4"],
  "registry-mirrors": [
    	  "https://dockerpull.org",
        "https://docker.anyhub.us.kg",
        "https://dockerhub.icu"
        ]
}

daemon.json文件我放到了csdn上,也可以直接点这里下载直接丢到/etc/docker目录下(做好备份)

(3)重启docker
# 1. 重新加载 daemon 配置文件
systemctl daemon-reload

# 2. 重启 Docker 服务
systemctl restart docker

# 3. 检查 Docker 服务状态
systemctl status docker

# 4. 验证配置是否生效
docker info
(4)配置rustdesk的配置文件,docker-compose.yaml
#创建文件夹的命令
mkdir /data/rustdesk/compose

docker-compose.yml文件我放到了csdn上,可以直接点这里下载直接丢到/data/rustdesk/compose目录下

#是添加的注释,可以删#后的内容无影响

# 指定 docker-compose 文件的版本
version: '3'

# 定义服务
services:
  # hbbs:ID注册服务器,用于处理RustDesk的设备注册和连接请求
  hbbs:
    # 指定容器名称
    container_name: hbbs
    # 指定使用的镜像和版本
    image: rustdesk/rustdesk-server:1.1.12
    # 运行命令,启动 hbbs 服务
    command: hbbs
    # 使用主机网络模式,直接使用宿主机的网络,可以避免端口映射的问题
    network_mode: "host"
    # 数据卷挂载,将容器内的 /root 目录映射到主机的 /data/rustdesk/data 目录
    # 用于持久化存储配置文件、密钥等数据
    volumes:
      - /data/rustdesk/data:/root
    # 环境变量配置
    #environment:
      # 设置中继密钥,用于 hbbs 和 hbbr 之间的通信验证
      # 是服务端 hbbs 和 hbbr 之间通信使用的密钥
      # - RELAY_KEY=123456
      # SSL证书配置(可选)
      # - CERT_FILE=/root/cert.pub
      # - KEY_FILE=/root/cert.key
    # 容器重启策略:always 表示容器退出时总是重启
    restart: always

  # hbbr:中继服务器,用于处理远程连接的数据传输
  hbbr:
    container_name: hbbr
    image: rustdesk/rustdesk-server:1.1.12
    # 运行命令,启动 hbbr 服务
    command: hbbr
    network_mode: "host"
    volumes:
      - /data/rustdesk/data:/root
    #environment:
      # 中继密钥必须与 hbbs 服务配置的密钥相同
      #- RELAY_KEY=123456
    restart: always

# 端口说明(使用 host 网络模式时自动使用以下端口):
# hbbs 服务使用的端口:
# - 21115: TCP,用于设备注册
# - 21116: TCP,用于 NAT 类型测试
# - 21118: TCP,用于 ID 注册服务器的 Web 服务
#
# hbbr 服务使用的端口:
# - 21117: TCP,用于中继服务器
# - 21119: TCP,用于中继服务器的 Web 服务

# 注意事项:
# 1. 确保防火墙开放上述端口
# 2. RELAY_KEY 建议使用复杂的随机字符串
# 3. 数据目录 /data/rustdesk/data 需要提前创建
# 4. 如果需要使用 SSL,请将证书文件放在数据目录中
# 5. 服务器重启时容器会自动启动
(5)启动项目

在配置文件所在目录执行以下命令启动服务

# 进入文件夹
cd /data/rustdesk/compose

# 创建docker数据目录
mkdir -p /data/rustdesk/data

# 启动服务
docker-compose up -d

# 有需要时可以用此命令重启服务
# docker-compose restart

# 查看服务状态
docker-compose ps

# 查看服务日志
docker-compose logs -f
(6)检查服务器端口是否开放

使用 nc(Netcat)检查或使用 telnet检查都可以

xx.xx.xx.xx是服务器ip地址,需要替换成自己的

for port in 21115 21116 21117 21118 21119; do
  nc -zv xx.xx.xx.xx $port
done
for port in 21115 21116 21117 21118 21119; do
  telnet xx.xx.xx.xx $port
done

2、客户端配置

(1)电脑客户端
(2)Android 客户端

出于移动设备安全性考虑,手机端不支持设置永久密码功能

三、hbbs 和 hbbr 的功能:

HBBS(ID/注册服务器)
  1. 主要功能

    • 处理设备注册
    • 管理设备在线状态
    • 分配和管理 RustDesk ID
    • 维护设备心跳连接
    • 协助建立 P2P 连接
  2. 具体工作

    • 当设备启动 RustDesk 时,会连接到 HBBS
    • 为每个设备分配唯一的 ID
    • 记录设备的在线状态和网络信息
    • 协助两个设备之间建立连接
    • 存储设备的临时连接信息
HBBR(中继服务器)
  1. 主要功能

    • 处理无法建立 P2P 连接时的数据中继
    • 作为数据传输的中转站
    • 处理 NAT 穿透失败的情况
  2. 具体工作

    • 当两台设备无法直接连接时介入
    • 将控制端的指令转发给被控端
    • 将被控端的画面数据转发给控制端
    • 处理音频、文件传输等数据中继
连接流程
  1. 正常 P2P 连接

    设备A → HBBS → 设备B(P2P直连)

  2. 需要中继的连接

    设备A → HBBS → HBBR → 设备B

为什么需要分开?
  1. 职责分离

    • HBBS 专注于设备管理和连接协调
    • HBBR 专注于数据传输和中继
  2. 性能考虑

    • 可以分别扩展两个服务
    • 中继服务器可以部署在不同地区
    • 更容易进行负载均衡
  3. 灵活部署

    • 可以根据需求部署多个 HBBR
    • HBBS 通常只需要一个实例
    • 可以针对不同地区优化网络性能
使用建议
  1. 小规模使用

    • 两个服务可以部署在同一台服务器上
    • 使用默认配置即可
  2. 大规模使用

    • HBBR 建议部署多个实例
    • 选择网络质量好的服务器部署 HBBR
    • HBBS 选择稳定可靠的服务器
  3. 企业使用

    • 建议在不同地区部署 HBBR
    • 配置高可用方案
    • 监控服务状态

这样的设计使得 RustDesk 可以更好地处理不同的网络环境,提供更可靠的远程连接服务。

相关推荐
不会玩技术的技术girl3 小时前
AI 自动化编程的现状与局限
运维·人工智能·自动化
baihb10244 小时前
Docker 默认安装位置迁移
java·docker
严不鸽4 小时前
Docker 常用总结
运维·docker·容器
小冯的编程学习之路4 小时前
【Linux】:Linux网络协议
linux·运维·网络协议
相逢太短,莫等茶凉4 小时前
docker学习记录-部署若依springcloud项目
java·spring cloud·docker·ruoyi
Just_Do_IT_OK5 小时前
Docker--Apollo-configservice
运维·docker·容器
dalongxia20245 小时前
数据中台从centos升级为国产操作系统后,资源增加字段时,提交报500错误
linux·运维·centos
木子欢儿6 小时前
debian12安装docker
运维·docker·云原生·容器·eureka
fengxingzhe0087 小时前
OSPFv2协议状态切换(状态机)基本原理-RFC2328
运维·网络·网络协议·面试·ospfv2·ospfv2协议状态机·ospfv2报文交互实例
恩爸编程7 小时前
Linux 定时任务:轻松创建与精准执行
linux·运维·数据库·linux定时任务·linux定时任务创建·linux定时任务执行·linux定时任务是什么