CieyGet
CieyGet

技术改变世界

  • 首页
  • 分类
  • 文章归档
  • 荷兰猪

  • 搜索
手机 折腾 破解 救砖 维修 硬改 B860AV1.1 Android zerotier docker 网络 windows linux ubuntu 中兴 Padavan 宝塔 华为 电视盒子 VIM PVE 光猫 友华 PT926G

自建RustDesk服务器

发表于 2022-12-26 | 分类于 Docker | 0 | 阅读次数 109

image-1678911901908

简介

Rustdesk是一个开源的虚拟远程桌面软件,可以使用官方注册/中继服务器,或者自服务器。

官网地址:https://rustdesk.com/

本文使用Docker-compose的方式部署运行Rustdesk服务器。在部署前请检查你的操作系统是否安装启用了Docker-compose。

部署

配置文件

创建并进入容器目录

mkdir .rustdesk_data && cd .rustdesk_data

新建yml配置文件,并写入保存配置

vim docker-compose.yml

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 rustdesk.example.com
    volumes:
      - /home/cieyget/.rustdesk-server/hbbs:/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:
      - /home/cieyget/.rustdesk-server/hbbr:/root
    networks:
      - rustdesk-net
    restart: unless-stopped

给yml配置文件设置权限

chmod 755 docker-compose.yml

注意:
其中第16行 rustdesk.example.com更改为本机服务器公网ip地址,或已正确解析并可访问的域名。

防火墙

设置服务器防火墙放行

21115/tcp 21116/tcp/upd 21117/tcp 21118/tcp 21119/tcp

这作为测试环境,我直接把墙关停方便测试。如果投入生产环境,请不要关闭防火墙!!!

#临时关停防火墙
systemctl stop firewalld.service
#永久关停防火墙
systemctl disable firewalld.service
#查看防火墙状态
systemctl status firewalld.service

启动容器

因为yml文件第15行和30行已经填写rustdesk官方的docker hub在线路径,所以执行时候会自动pull运行。

启动docker容器

docker-compose up -d

查看docker运行情况

sudo docker ps

image-1678913095840

把yml文件里改好的IP或域名,填写到使用端中[ID服务器]
image-1672158423811

至此,测试远程控制使用应该已经没有问题了,即使服务器重启,docker容器也会自启动。

安全&鉴权

按照以上流程官方流程部署后有一个风险点,如果其他人知道了该IP或域名部署了rustdesk服务器,那么他人也可以直接填写ID服务器使用服务。这样的话,流量就给别人白嫖了。

所以接下来,需要强制开启填写key才能连接服务器

开启验证

修改并保存第3步配置的yml文件 docker-compose.yml

vim docker-compose.yml

在16行和31行末尾加上-k _ 参数,以强制开启验证key

第16行

command: hbbs -r rustdesk.example.com:21117 -k _ 

第31行

command: hbbr -k _ 

注意16行填写自己的IP或域名

重新加载容器

进入容器文件夹

cd .rustdesk_data

执行命令

docker-compose pull
docker-compose up -d

此时,重新测试用户端控制,没有填写KEY的情况下,会报错无法连上。

查看key

进入rustdesk_data文件夹

cd /root/rusrdesk_data/data

可以看到3个db文件,2个id文件

$ ls  -l
total 1144
-rw-r--r-- 1 root root    4096 Dec 25 19:23 db_v2.sqlite3
-rw-r--r-- 1 root root   32768 Mar 16 02:41 db_v2.sqlite3-shm
-rw-r--r-- 1 root root 1120672 Mar 16 02:41 db_v2.sqlite3-wal
-rw-r--r-- 1 root root      88 Dec 25 19:23 id_ed25519
-rw-r--r-- 1 root root      44 Dec 25 19:23 id_ed25519.pub

查看公钥文件id_ed25519.pub

cat ./id_ed25519.pub

aMXQFBM+NpRIDqh0KZ7CUAXuQFxHqykAn5Fm0YqSQKM= 

将输出的id_ed25519.pub公钥复制到用户端

image-1672158543970

重启

reboot

注意进行重启,否则可能即使填写KEY仍连不上。

# ubuntu # docker
shell脚本实现dnspod动态更新IP
Win10企业版LTSC2021安装微软商店
  • 文章目录
  • 站点概览
CieyGet

CieyGet

36 日志
13 分类
23 标签
RSS
Creative Commons
© 2023 CieyGet
0%