宝塔面板使用Docker搭建rustdesk远程中继服务器原创文章

玩技站长 运维笔记1 102字数 7276阅读模式

市面上的各大主流远程工具Teamviewer、Todesk、向日葵、连连控等等都是从免费到开始割韭菜,慢慢的各种功能开始收费,基础远程限流导致清晰度不高,今天给大家介绍一款自建远程工具rustdesk,并且教大家如何使用宝塔面板安装的全过程,好处是根本不限流全程高清画质,只要你的带宽够用,那么这完全是一款私人定制工具。

一、首先你需要一台国内云服务器。如阿里云、腾讯云等都可以,配置不用太高,宽带可以大点(因为需要画面共享)。如果没有云服务器的话,这里可以去申请一个云服务器(百度云:www.baiduvps.com )文章源自玩技e族-https://www.playezu.com/826162.html

二、因为我们是使用Docker来安装Rustdesk的中继服务器,所以需要先在服务器上安装docker。至于如何安装docker的话,大家可以自行百度(有非常多的教程)。安装好成功后,执行docker version命令会出现如下画面文章源自玩技e族-https://www.playezu.com/826162.html

三、本次教程使用宝塔自带Docker,首先需要保证宝塔的Docker是启用状态。文章源自玩技e族-https://www.playezu.com/826162.html

文章源自玩技e族-https://www.playezu.com/826162.html

环境搭建

官方教程
文章源自玩技e族-https://www.playezu.com/826162.html
文章源自玩技e族-https://www.playezu.com/826162.html

官方说明

如果你运行 docker 版本时候,要求注册码,说明你下载的是老版本,国内的 docker 镜像缓存没有更新文章源自玩技e族-https://www.playezu.com/826162.html

sudo docker image pull rustdesk/rustdesk-server
sudo docker run --name hbbs -p 21115:21115 -p 21116:21116 -p 21116:21116/udp -p 21118:21118 -v `pwd`:/root -td --net=host rustdesk/rustdesk-server hbbs -r <relay-server-ip[:port]>
sudo docker run --name hbbr -p 21117:21117 -p 21119:21119 -v `pwd`:/root -td --net=host rustdesk/rustdesk-server hbbr

Docker Compose

version: '3'

networks:
  rustdesk-net:
    external: false

services:
  hbbs:
    container_name: hbbs
    ports:
      - 21115:21115
      - <hbbs_port>:21116 # 自定义 hbbs 映射端口
      - <hbbs_port>:21116/udp # 自定义 hbbs 映射端口
    image: rustdesk/rustdesk-server
    command: hbbs -r <your_domain>:<hbbr_port> # 填入个人域名或 IP + hbbr 暴露端口
    volumes:
      - <mount_path>:/root # 自定义挂载目录
    networks:
      - rustdesk-net
    depends_on:
      - hbbr
    restart: unless-stopped
    deploy:
      resources:
        limits:
          memory: 64M

  hbbr:
    container_name: hbbr
    ports:
      - <hbbr_port>:21117 # 自定义 hbbr 映射端口
    image: rustdesk/rustdesk-server
    command: hbbr
    volumes:
      - <mount_path>:/root # 自定义挂载目录
    networks:
      - rustdesk-net
    restart: unless-stopped
    deploy:
      resources:
        limits:
          memory: 64M

据我所知,–net=host 仅适用于 Linux,它让 hbbs/hbbr 可以看到对方真实的ip, 而不是固定的容器ip (172.17.0.1)。 如果–net=host运行正常,-p选项就不起作用了, 可以去掉。请去掉 –net=host,如果您在非Linux系统上遇到无法连接的问题文章源自玩技e族-https://www.playezu.com/826162.html

 文章源自玩技e族-https://www.playezu.com/826162.html

文章源自玩技e族-https://www.playezu.com/826162.html

方式一:推荐

评论后刷新
由于本站被大量采集,顾添加评论验证防止因采集造成的网络崩溃

方式二:不推荐

评论后刷新
由于本站被大量采集,顾添加评论验证防止因采集造成的网络崩溃

放行端口

默认情况下,hbbs 监听21115(tcp), 21116(tcp/udp), 21118(tcp),hbbr 监听21117(tcp), 21119(tcp)。务必在防火墙开启这几个端口, 请注意21116同时要开启TCP和UDP。其中:

21115是hbbs用作NAT类型测试
21116/UDP是hbbs用作ID注册与心跳服务
21116/TCP是hbbs用作TCP打洞与连接服务
21117是hbbr用作中继服务。
2111821119是为了支持网页客户端。如果您不需要网页客户端(21118,21119)支持,对应端口可以不开。

宝塔放行

TCP(21115, 21116, 21117, 21118, 21119)
UDP(21116)

配置终端

下载地址:https://rustdesk.com/zh/

第一步:首次打开是这样的,点击安装

第二步:安装后,点击设置

第三步:控制端设置

ID服务器:云外网IP

Key:你刚才在配置文件或者启动命令配置的 -k 后面的内容。

远程链接

1、在控制端输入被控制端的ID,点击连接

2、输入被控端显示的密码,也可以让被控端点击接受

账户登录

场景说明:部署好了之后会发现rustdesk有个登录功能,但是没有看到账号和密码。官方的说明是为了以后商业化准备的,但是有大神已经搞定了,那就是rustdesk_server_api。

拓展知识

项目地址:https://github.com/kingmo888/rustdesk-api-server

功能特点

  • 1、支持前台网页自主注册和登录。

宝塔面板使用Docker搭建rustdesk远程中继服务器-图片9 宝塔面板使用Docker搭建rustdesk远程中继服务器-图片10

  • 支持前台展示设备信息,分为管理员版、用户版。

  • 支持自定义别名(备注)。

  • 支持后台管理。

  • 支持彩色标签。

宝塔面板使用Docker搭建rustdesk远程中继服务器-图片11

  • 支持设备在线统计。

  • 支持设备密码保存。

  • 利用心跳接口自动管理token并保活。

  • 支持分享设备给其他用户。

宝塔面板使用Docker搭建rustdesk远程中继服务器-图片12

  • 支持web控制端(目前仅支持非SSL模式,见下面使用问题说明)

宝塔面板使用Docker搭建rustdesk远程中继服务器-图片13

宝塔面板使用Docker搭建rustdesk远程中继服务器-图片14

 

搭建教程

方法1:开箱即用(windows方便)

 

仅支持Windows,请前往 release 下载,无需安装环境,直接运行启动.bat即可。 截图:

宝塔面板使用Docker搭建rustdesk远程中继服务器-图片15

方法2:代码运行(不推荐×

# 将代码克隆到本地
git clone https://github.com/kingmo888/rustdesk-api-server.git
# 进入目录
cd rustdesk-api-server
# 安装依赖
pip install -r requirements.txt
# 确保依赖安装正确后,执行:
# 端口号请自行修改,建议保留21114为Rustdesk API默认端口
python manage.py runserver 0.0.0.0:21114

此时即可使用 http://本机IP:端口 的形式来访问。

注意:如果 CentOS 配置时,Django4 会因为系统的 sqlite3 版本过低而出问题,请修改依赖库中的文件。路径:xxxx/Lib/site-packages/django/db/backends/sqlite3/base.py (根据情况自行查找包所在地址),修改内容:

# from sqlite3 import dbapi2 as Database   #(注释掉这行)
from pysqlite3 import dbapi2 as Database # 启用pysqlite3

方法3:Docker 运行

Docker方法1:自行构建(不推荐不方便×
git clone https://github.com/kingmo888/rustdesk-api-server.git
cd rustdesk-api-server
docker compose --compatibility up --build -d
Docker方法2:预构建运行
评论后刷新
由于本站被大量采集,顾添加评论验证防止因采集造成的网络崩溃

环境变量

 

变量名参考值备注
HOST默认 0.0.0.0绑定服务的IP
TZ默认 Asia/Shanghai,可选时区
SECRET_KEY可选,自定义一串随机字符程序加密秘钥
CSRF_TRUSTED_ORIGINS可选,默认关闭验证;
如需开启填写你的访问地址 http://yourdomain.com:21114
如需关闭验证请删除此变量,而不是留空
防跨域信任来源
ID_SERVER可选,默认为和API服务器同主机。
可自定义如 yourdomain.com
Web控制端使用的ID服务器
DEBUG可选,默认 False调试模式
ALLOW_REGISTRATION可选,默认 True是否允许新用户注册
数据库配置-- 开始 --若不使用MYSQL则以下皆无需配置
DATABASE_TYPE可选,默认 SQLITE3数据库类型(SQLITE/MYSQL)
MYSQL_DBNAME可选,默认 -MYSQL数据库名
MYSQL_HOST可选,默认 127.0.0.1MYSQL数据库的服务器IP
MYSQL_USER可选,默认 -MYSQL数据库的用户名
MYSQL_PASSWORD可选,默认 -MYSQL数据库的密码
MYSQL_PORT可选,默认 3306MYSQL数据库端口
数据库配置-- 结束 --查看【sqlite3迁移mysql教程】
LANGUAGE_CODE可选,默认 zh-hans语言,支持中文(zh-hans)、英语(en)

使用问题

 

  • 管理员设置

    当数据库中不存在账户时,第一个注册的账户直接获取超级管理员权限,之后注册账户为普通账户。

  • 设备信息

    经测试,客户端会在非绿色版模式下,安装为服务的模式中,定时发送设备信息到api接口,所以如果想要设备信息,需要安装rustdesk客户端并启动服务。

  • 连接速度慢

    新版本Key模式链接速度慢,可以在服务端启动服务时,不要带参数的-k,此时,客户端也不能配置key。

  • Web控制端配置

    • 设置ID_SERVER环境变量,或修改rustdesk_server_api/settings.py文件中ID_SERVER配置项,将ID服务器/中继服务器IP或域名填上。
  • Web控制端一直转圈

    • 检查ID服务器填写是否正确

    • Web控制端目前仅支持非SSL模式,若webui为https访问,请将s去掉,否则ws连不上一直转圈。如:https://domain.com/webui,改为http://domain.com/webui

  • 后台操作登录或登出时:CSRF验证失败. 请求被中断.

    这种操作大概率是docker配置+nginx反代+SSL的组合,要注意修改CSRF_TRUSTED_ORIGINS,如果是ssl那就是https开头,否则就是http。

宝塔整合:(进阶配置)

将上述的hbbr和hbb和web端整合直接运行一个compose up即可

评论后刷新
由于本站被大量采集,顾添加评论验证防止因采集造成的网络崩溃
玩技站长微信
添加好友自动发送入群邀请
weinxin
rainbow-shownow
玩技官方公众号
官方微信公众号
weinxin
PLAYEZU
 最后更新:2024-5-17
    • 10086@gmail.com
      10086@gmail.com 0

      学习

    匿名

    发表评论

    匿名网友
    确定