【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 可以更好地处理不同的网络环境,提供更可靠的远程连接服务。

相关推荐
小诸葛的博客1 小时前
详解Linux中的定时任务管理工具crond
linux·运维·chrome
一默19911 小时前
CentOS 7.9升级OpenSSH到9.9p2
linux·运维·centos
keep intensify1 小时前
Linux常用指令
linux·服务器·php
BranH2 小时前
Linux系统中命令设定临时IP
linux·运维·服务器
极小狐2 小时前
极狐GitLab 项目功能和权限解读
运维·git·安全·gitlab·极狐gitlab
宁酱醇2 小时前
GitLab_密钥生成(SSH-key)
运维·ssh·gitlab
秋风起,再归来~2 小时前
【Linux庖丁解牛】—进程优先级!
linux·运维·服务器
诡异森林。3 小时前
Docker--Docker网络原理
网络·docker·容器
Lalolander3 小时前
设备制造行业如何避免项目管理混乱?
运维·制造·工程项目管理·四算一控·epc·环保设备工程·设备制造
ALex_zry3 小时前
Docker Macvlan网络配置实战:解决“network already exists“错误
网络·docker·php