使用docker自建rustdesk服务器

简介: docker自建rustdesk服务器

大家好,我是早九晚十二,目前是做运维相关的工作。写博客是为了积累,希望大家一起进步!

前言

RustDesk 是一款体验优秀的远程控制软件,和 TeamViewer、AnyDesk 等主流的控制软件一样简单,能够让我们在另外一台设备上远程控制电脑,无论是远程办公、远程教学或者是远程协助,都能满足我们的需求。
界面简洁易用,无需太多学习成本,使用简单,文件传输、调整画面质量等功能应有尽有轻量小巧,windows 上甚至不用安装就能运行端到端加密,以及基于角色的访问权限控制,数据传输足够安全支持多平台,Windows、macOS、Linux、iOS、Android,甚至打开网页版都可以开始工作。
image.png

安装基础依赖

docker安装

安装docker可以参照之前的文章:centos7.2docker安装与使用
也可以使用如下命令快速安装

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
如果速度慢,也可以使用国内网址
curl -sSL https://get.daocloud.io/docker | sh

image.png

查看docker版本

[root@localhost ~]# docker --version
Docker version 23.0.3, build 3e7cbfd

安装docker-compose

yum install docker-compose-plugin

查看docker compose版本

[root@localhost ~]# docker compose version
Docker Compose version v2.17.2

启动docker

 systemctl start docker
 systemctl enable docker

创建配置文件

在root下新建一个rustdesk目录,并创建compose配置

mkdir -p /root/rustdesk
touch /root/rustdesk/docker-compose.yml

配置文件内容如下:

version: '3'

networks:
  rustdesk-net:
    external: false

services:
  hbbs:
    container_name: hbbs
    ports:
      - 21115:21115
      - 21116:21116
      - 21116:21116/udp
      - 21118:21118
    image: rustdesk/rustdesk-server:latest
    command: hbbs -r 这里替换成你服务器的公网ip:21117
    volumes:
      - ./data:/root
    networks:
      - rustdesk-net
    depends_on:
      - hbbr
    restart: unless-stopped

  hbbr:
    container_name: hbbr
    ports:
      - 21117:21117
      - 21119:21119
    image: rustdesk/rustdesk-server:latest
    command: hbbr
    volumes:
      - ./data:/root
    networks:
      - rustdesk-net
    restart: unless-stopped

执行下载镜像和启动docker容器

[root@localhost rustdesk]# cd /root/rustdesk
[root@localhost rustdesk]# docker compose up -d
[+] Running 6/6
 ✔ hbbr 4 layers [⣿⣿⣿⣿]      0B/0B      Pulled                                                                                                                                                                      10.3s 
   ✔ 06d39c85623a Pull complete                                                                                                                                                                                      6.5s 
   ✔ 5dd09196e6ec Pull complete                                                                                                                                                                                      6.7s 
   ✔ ca6574f0f245 Pull complete                                                                                                                                                                                      6.9s 
   ✔ 4f4fb700ef54 Pull complete                                                                                                                                                                                      7.0s 
 ✔ hbbs Pulled                                                                                                                                                                                                      10.3s 
[+] Running 3/3
 ✔ Network rustdesk_rustdesk-net  Created                                                                                                                                                                            0.0s 
 ✔ Container hbbr                 Started                                                                                                                                                                            0.7s 
 ✔ Container hbbs                 Started

查看容器

docker ps

image.png

客户端使用自建服务器

点击ID/中级服务器
image.png

image.png

避免白嫖?

目前,通过自建rustdesk服务器,我们只需要填写ID服务器即可达到使用国内加速的目的,但是有一个风险点,如果其他人知道了你的地址,就可以白嫖使用你的流量,那么如何避免此类情况呢?

使用key认证

修改compose.yml

[root@localhost rustdesk]# vim /root/rustdesk/docker-compose.yml

在16行和31行加上-k参数
image.png

完整配置如下

version: '3'

networks:
  rustdesk-net:
    external: false

services:
  hbbs:
    container_name: hbbs
    ports:
      - 21115:21115
      - 21116:21116
      - 21116:21116/udp
      - 21118:21118
    image: rustdesk/rustdesk-server:latest
    command: hbbs -r 此处填写你的公网IP:21117 -k
    volumes:
      - ./data:/root
    networks:
      - rustdesk-net
    depends_on:
      - hbbr
    restart: unless-stopped

  hbbr:
    container_name: hbbr
    ports:
      - 21117:21117
      - 21119:21119
    image: rustdesk/rustdesk-server:latest
    command: hbbr -k
    volumes:
      - ./data:/root
    networks:
      - rustdesk-net
    restart: unless-stopped

重新加载容器

[root@loclahost rustdesk]# cd /root/rustdesk/
[root@loclahost rustdesk]# docker compose pull
[+] Running 2/2
 ✔ hbbs Skipped - Image is already being pulled by hbbr                                                                                                                                0.0s 
 ✔ hbbr Pulled                                                                                                                                                                         2.2s 
[root@loclahost rustdesk]# docker compose up -d
[+] Running 2/2
 ✔ Container hbbr  Started                                                                                                                                                             0.8s 
 ✔ Container hbbs  Started

测试客户端

不填写key的情况下,测试客户端报错

查看公钥文件

[root@localhost rustdesk]# cd /root/rustdesk/data/
[root@localhos data]# ls
db_v2.sqlite3  db_v2.sqlite3-shm  db_v2.sqlite3-wal  id_ed25519  id_ed25519.pub
[root@localhos data]# cat id_ed25519.pub 
z5pT5R00HRKfhUaAsdgGaC8lU1oDM1QGBuLgasBIYgwK8BpagasaxX5LM=

重启服务器

reboot

再次测试

将key复制到客户端里,报错消失。
image.png

码字不易。如果文章对您有希望的话,请三连支持一波。
如有问题,欢迎留言,一起探讨,感谢。
也可关注早九晚十二微信公众号,看到留言后会第一时间回复。

相关文章
|
8天前
|
网络安全 虚拟化 Docker
SSH后判断当前服务器是云主机、物理机、虚拟机、docker环境
结合上述方法,您可以对当前环境进行较为准确的判断。重要的是理解每种环境的特征,并通过系统的响应进行综合分析。如果在Docker容器内,通常会有明显的环境标志和受限的资源视图;而在云主机或虚拟机上,虽然它们也可能是虚拟化的,但通常提供更接近物理机的体验,且可通过硬件标识来识别虚拟化平台。物理机则直接反映硬件真实信息,较少有虚拟化痕迹。通过这些线索,您应该能够定位到您所处的环境类型。
12 2
|
3天前
|
前端开发 Docker 容器
主机host服务器和Docker容器之间的文件互传方法汇总
Docker 成为前端工具,可实现跨设备兼容。本文介绍主机与 Docker 容器/镜像间文件传输的三种方法:1. 构建镜像时使用 `COPY` 或 `ADD` 指令;2. 启动容器时使用 `-v` 挂载卷;3. 运行时使用 `docker cp` 命令。每种方法适用于不同场景,如静态文件打包、开发时文件同步及临时文件传输。注意权限问题、容器停止后的文件传输及性能影响。
|
10天前
|
网络安全 Docker 容器
【Bug修复】秒杀服务器异常,轻松恢复网站访问--从防火墙到Docker服务的全面解析
【Bug修复】秒杀服务器异常,轻松恢复网站访问--从防火墙到Docker服务的全面解析
16 0
|
16天前
|
存储 网络协议 Unix
docker的底层原理一:客户端-服务器架构
本文详细解释了Docker的客户端-服务器架构,包括常驻后台的Docker守护进程、通过命令行接口发送请求的Docker客户端、以及它们之间通过Unix socket或网络接口进行的通信。
12 0
|
17天前
|
Linux 开发工具 Docker
各个类linux服务器安装docker教程
各个类linux服务器安装docker教程
42 0
|
关系型数据库 开发工具 git
docker中建立私有git服务器[gitlab]
现在使用git的很普遍,在开发内部如何建立个git服务器,本文以gitlab为例,让你分分钟就可以搭好一个环境【docker的威力非同一般】 首先在docker.com找到gitlab的下载源和信息,如下: https://registry.
1669 0
|
2天前
|
存储 Docker 容器
docker中挂载数据卷到容器
【10月更文挑战第12天】
14 5
|
7天前
|
存储 运维 云计算
探索Docker容器化:从入门到实践
在这个快速发展的云计算时代,Docker容器化技术正在改变应用的开发、部署和管理方式。本文旨在为初学者提供一个关于Docker的全面入门指南,并通过实践案例展示Docker在实际开发中的应用。我们将一起了解Docker的核心概念、基本操作、网络和存储,以及如何构建和部署一个简单的Web应用。无论你是开发者还是运维人员,本文都会帮助你快速掌握Docker的核心技能。
|
3天前
|
存储 测试技术 开发者
docker中将数据卷挂载到容器
【10月更文挑战第11天】
15 3
|
3天前
|
存储 应用服务中间件 云计算
深入解析:云计算中的容器化技术——Docker实战指南
【10月更文挑战第14天】深入解析:云计算中的容器化技术——Docker实战指南
15 1