【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

image-20241126132553345

如果访问不了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安装

# 更新包列表
sudo apt-get update

image-20241126135903999

# 安装必要的依赖包
apt-get install -y ca-certificates curl gnupg lsb-release# 添加Docker官方GPG密钥
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg# 设置Docker稳定版仓库
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null# 再次更新软件包索引
apt-get update# 安装最新版本的Docker和docker-compose
apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

查看版本号判断是否安装成功

docker --version

image-20241126140601965

(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目录下(做好备份)

image-20241126140828250

(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

image-20241126143023457

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: hbbrimage: rustdesk/rustdesk-server:1.1.12# 运行命令,启动 hbbr 服务command: hbbrnetwork_mode: "host"volumes:- /data/rustdesk/data:/root#environment:# 中继密钥必须与 hbbs 服务配置的密钥相同#- RELAY_KEY=123456restart: 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

image-20241126144220402

(6)检查服务器端口是否开放

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

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

for port in 21115 21116 21117 21118 21119; donc -zv xx.xx.xx.xx $port
done

image-20241126144939844

for port in 21115 21116 21117 21118 21119; dotelnet xx.xx.xx.xx $port
done

2、客户端配置

(1)电脑客户端

image-20241126151326262

(2)Android 客户端

image-20241126152333963

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

image-20241126153247672

三、hbbs 和 hbbr 的功能:

HBBS(ID/注册服务器)

  1. 主要功能

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

    • 当设备启动 RustDesk 时,会连接到 HBBS
    • 为每个设备分配唯一的 ID
    • 记录设备的在线状态和网络信息
    • 协助两个设备之间建立连接
    • 存储设备的临时连接信息

HBBR(中继服务器)

  1. 主要功能

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

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

连接流程

  1. 正常 P2P 连接
设备A → HBBS → 设备B(P2P直连)
  1. 需要中继的连接
设备A → HBBS → HBBR → 设备B

为什么需要分开?

  1. 职责分离

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

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

    • 可以根据需求部署多个 HBBR
    • HBBS 通常只需要一个实例
    • 可以针对不同地区优化网络性能

使用建议

  1. 小规模使用

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/62119.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

springboot配置https,并使用wss

学习链接 springboot如何将http转https SpringBoot配置HTTPS及开发调试 Tomcat8.5配置https和SpringBoot配置https 可借鉴的参考: springboot如何配置ssl支持httpsSpringBoot配置HTTPS及开发调试的操作方法springboot实现的https单向认证和双向认证(java生成证…

vscode的项目给gitlab上传

目录 一.创建gitlab帐号 二.在gitlab创建项目仓库 三.Windows电脑安装Git 四.vscode项目git上传 一.创建gitlab帐号 二.在gitlab创建项目仓库 图来自:Git-Gitlab中如何创建项目、创建Repository、以及如何删除项目_gitlab新建项目-CSDN博客) 三.Windows电脑安…

C++设计模式(工厂模式)

一、介绍 1.动机 在软件系统中,经常面临着创建对象的工作,这些对象有可能是一系列相互依赖的对象;由于需求的变化,需要创建的对象的具体类型经常变化,同时也可能会有更多系列的对象需要被创建。 如何应对这种变化&a…

速度革命:esbuild如何改变前端构建游戏 (1)

什么是 esbuild? esbuild 是一款基于 Go 语言开发的 JavaScript 构建打包工具,以其卓越的性能著称。相比传统的构建工具(如 Webpack),esbuild 在打包速度上有着显著的优势,能够将打包速度提升 10 到 100 倍…

scp比rz sz传文件更好

scp (Secure Copy) 是一个用于在本地主机和远程主机之间安全地传输文件的工具,它使用SSH协议来加密传输的数据。下面是 scp 的基本用法: 从本地复制到远程 scp /path/to/local/file usernameremote_host:/path/to/remote/directory 这条命令将本地文件…

java八股-分布式服务的接口幂等性如何设计?

文章目录 接口幂等token Redis分布式锁 原文视频链接:讲解的流程特别清晰,易懂,收获巨大 【新版Java面试专题视频教程,java八股文面试全套真题深度详解(含大厂高频面试真题)】 https://www.bilibili.com/…

C++:多态的原理

目录 一、多态的原理 1.虚函数表 2.多态的原理 二、单继承和多继承的虚函数表 1、单继承中的虚函数表 2、多继承中的虚函数表 一、多态的原理 1.虚函数表 首先我们创建一个使用了多态的类&#xff0c;创建一个对象来看其内部的内容&#xff1a; #include<iostre…

Local Changes不展示,DevEco Studio的git窗口中没有Local Changes

DevEco Studio的git窗口中&#xff0c;没有Local Changes&#xff0c;怎么设置可以调出&#xff1f; 进入File-->Settings-->Version Control&#xff0c;将Use non-modal commit interface前的勾选框取消勾选&#xff0c;点击OK即可在打开git窗口&#xff0c;就可以看到…

情绪识别项目

文章目录 1、mp4s文件转mp3文件2、Audition下载3、Audition安装4、Audition使用&#xff1a; 1、mp4s文件转mp3文件 在线转&#xff1a;Convert audio to MP3&#xff08;https://audio.online-convert.com/convert-to-mp3&#xff09; 2、Audition下载 Audition CC2019/64位…

Windows Qtcreator不能debug 调试 qt5 程序

Windows下 Qt Creator 14.0.2 与Qt5.15.2 正常release打包都是没有问题的&#xff0c;就是不能debug&#xff0c;最后发现是两者不兼容导致的&#xff1b; 我使用的是 编译器是 MinGW8.1.0 &#xff0c;这个版本是有问题的&#xff0c;需要更新到最新&#xff0c;我更新的是Mi…

解决整合Django与Jinja2兼容性的问题

提问 解决整合Django与Jinja2时遇到了一些兼容性问题。已经按照常规步骤在我的settings.py中配置了Jinja2作为模板引擎&#xff0c;同时保留了Django默认的模板设置。然而尝试同时使用Django和Jinja2时&#xff0c;系统报错提示我没有指定模板。如果我尝试移除Django的默认模板…

如何搭建C++环境--1.下载安装并调试Microsoft Visual Studio Previerw(Windows)

1.首先&#xff0c;打开浏览器 首先&#xff0c;搜索“Microsoft Visual Studio Previerw” 安装 1.运行VisualStudioSetup (1).exe 无脑一直点继续 然后就到 选择需要的语言 我一般python用pycharm Java&#xff0c;HTML用vscode&#xff08;Microsoft Visual Studio cod…

【Kubernetes 指南】基础入门——Kubernetes 简介(一)

目录 一、Kubernetes 简单介绍 二、Kubernetes 是一个平台 三、Kubernetes 不是什么&#xff1f; 一、Kubernetes 简单介绍 Kubernetes 是谷歌开源的容器集群管理系统&#xff0c;是 Google 多年大规模容器管理技术 Borg 的开源版本&#xff0c;主要功能包括&#xff1a; ①…

Java线程的使用

Java中的线程是用来实现多任务并发执行的机制。在Java中&#xff0c;主要有两种方式来创建和使用线程&#xff1a;实现Runnable接口和继承Thread类。 实现Runnable接口&#xff1a; 创建一个类&#xff0c;实现Runnable接口&#xff0c;并重写run()方法。在run()方法中定义线程…

go clean -modcache命令清理缓存

go clean -modcache命令用于清理Go模块的本地缓存。Go模块缓存位于$GOPATH/pkg/mod/cache目录下&#xff0c;存储了所有下载和使用的模块版本。当执行go clean -modcache时&#xff0c;这个命令会删除该目录下的所有内容&#xff0c;迫使Go在下次构建时重新下载所有依赖的模块。…

Python 中的 Lxml 库与 XPath 用法

Python 中的 Lxml 库与 XPath 用法 Python 中的 Lxml 库与 XPath 用法Lxml安装 Lxml基础用法加载文档解析与查询创建新的 XML/HTML 高级特性1. 复杂的 XPath 查询2. DTD 和 Schema 验证3. XSLT 变换4. 自定义命名空间5. 异常处理6. 大文件流式处理7. 并发和线程安全性8. 性能优…

共享售卖机语音芯片方案选型:WTN6020引领智能化交互新风尚

在共享经济蓬勃发展的今天&#xff0c;共享售卖机作为便捷购物的新形式&#xff0c;正逐步渗透到人们生活的各个角落。为了提升用户体验&#xff0c;增强设备的智能化和互动性&#xff0c;增加共享售卖机的语音功能就显得尤为重要。 共享售卖机语音方案选型&#xff1a; WTN602…

关闭AWS账号后,服务是否仍会继续运行?

在使用亚马逊网络服务&#xff08;AWS&#xff09;时&#xff0c;用户有时可能会考虑关闭自己的AWS账户。这可能是因为项目结束、费用过高&#xff0c;或是转向使用其他云服务平台。然而&#xff0c;许多人对关闭账户后的服务状态感到困惑&#xff0c;我们九河云和大家一起探讨…

新版本PasteSpider开发中专用部署工具介绍(让2GB的服务器也能使用CI/CD,简化你的部署过程)

如果你有linux服务器&#xff0c;可以试试这个PasteSpider&#xff0c;利用容器管理软件(docker/podman)&#xff0c;可以快速上手&#xff01; 拉取镜像并安装 【【【PasteSpider的下载和安装(支持docker的一键模式)】】】 建议使用 最简单的模式SqliteMemoryCache 测试嘛…

【小白学机器学习37】用numpy计算协方差cov(x,y) 和 皮尔逊相关系数 r(x,y)

目录 1 关于1个数组np.array&#xff08;1组数据&#xff09;如何求各种统计数据 2 关于2个数组np.array&#xff08;2组数据&#xff09;如何求数组的相关关系&#xff1f; 2.1 协方差公式和方差公式 2.2 协方差 公式 的相关说明 2.3 用np.cov(x,y,ddof0) 直接求协方差矩…