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

相关推荐
勤奋的凯尔森同学17 分钟前
webmin配置终端显示样式,模仿UbuntuDesktop终端
linux·运维·服务器·ubuntu·webmin
丁卯4041 小时前
Go语言中使用viper绑定结构体和yaml文件信息时,标签的使用
服务器·后端·golang
chengooooooo1 小时前
苍穹外卖day8 地址上传 用户下单 订单支付
java·服务器·数据库
人间打气筒(Ada)3 小时前
MySQL主从架构
服务器·数据库·mysql
落笔画忧愁e4 小时前
FastGPT快速将消息发送至飞书
服务器·数据库·飞书
小冷爱学习!4 小时前
华为动态路由-OSPF-完全末梢区域
服务器·网络·华为
!!!5254 小时前
华为云镜像加速器
docker·容器·华为云
技术小齐4 小时前
网络运维学习笔记 016网工初级(HCIA-Datacom与CCNA-EI)PPP点对点协议和PPPoE以太网上的点对点协议(此处只讲华为)
运维·网络·学习
ITPUB-微风4 小时前
Service Mesh在爱奇艺的落地实践:架构、运维与扩展
运维·架构·service_mesh
落幕5 小时前
C语言-进程
linux·运维·服务器