RustDesk 搭建

news/2025/1/20 5:47:53/文章来源:https://www.cnblogs.com/hetaotao0919/p/18239044

Web、API 部署教程:https://www.52pojie.cn/thread-1708319-1-1.html

RustDesk 服务端下载:https://github.com/rustdesk/rustdesk-server/releases

RustDesk 客户端下载:https://github.com/rustdesk/rustdesk/releases/tag/1.2.3-2

RustDesk 官方部署教程:https://rustdesk.com/docs/zh-cn/


1:RustDesk 概览

1.1:项目简介

RustDesk 它是一个远程控制开源项目,该项目支持自己搭建服务器。

RustDesk 默认提供免费公共中继服务,但 RustDesk 的中继服务器在海外,所以延迟非常明显,所以可以自己搭建服务器。

1.2:工作原理

RustDesk 会先用 TCP 21116 信令服务 NAT 打洞,如果打洞成功,直接 P2P 直连,RustDesk 不参与中继。

RustDesk 如果没有打洞成功,则走 TCP 21117 中继服务,延迟、画质取决于中继服务器的带宽。

hbbs 监听端口 hbbr 监听端口
21115(tcp):用作 NAT 类型测试 21117(tcp):中继服务
21116(tcp):NAT 打洞与连接服务 21119(tcp):支持 Web 客户端
21118(tcp):支持 Web 客户端
21116(udp):ID 注册与心跳服务

2:部署 RustDesk 服务

我的服务器是 CentOS7.6 64位,所以下载 rustdesk-server-linux-amd64.zip,用 unzip 解压后执行 hbbr(ID)hbbs(中继)

请注意 TCP 21115-21119 和 1 个 UDP 21116 都要在安全组放行,如果有宝塔,宝塔的防火墙也要放行。

unzip rustdesk-server-linux-amd64.zip
mv amd64 rustdesk_server
cd rustdesk_server
# 启动ID注册服务,后台运行
# -k _ 用于强制被控端输入Key,因为默认情况下只需要主控端输入Key就能连接
./hbbs -k _ &
# 启动中继服务,后台运行
# 启动后生成公私密钥对(id_edxxxx,id_edxxxx.pub)
./hbbr -k _ &

3:部署客户端

3.1:Win 客户端

由于我是 Win 环境,所以下载 rustdesk-1.2.3-2-x86_64.exe,打开后是非安装版本,也可作为主控和被控端,但可能会有一些限制,最好用安装一下。

示例: 笔记本无影云电脑 都安装了 RustDesk for Win 客户端,并且 ID/中继服务器 均配置完成。笔记本获取无影电脑的 ID 值和密码,连接成功。

3.2:Web 客户端

Web 客户端有静态源码,官方教程中也说只有 RustDesk Server Pro 才有 Web 远控,GitHub 项目中也没有给 Web 客户端的资源,但网上却有下载,我猜是有人从 Pro 版本扒出来源码修改了一点点😅。


0x01:宝塔创建一个站点,用于存放 Web 静态文件。

0x02:将 web-client 文件夹里的文件全部剪切到根目录中,并修改所有者和用户组为 www。

mv web-client/* wwwroot/
chown -R www:www wwwroot/*

0x03:浏览器访问 Web 远控端,同样也要输入 ID服务器 和 Key。

如果服务器上行带框小,访问会比较慢

0x04:Web 远控输入无影云主机ID,输入密码后成功连接。

服务器上行带宽太小会导致延迟、画质过差

3.3:其它 客户端

RustDesk 还支持 Linux(Debian系列没问题,虽然也提供了RadHat系列的rpm包,但好像有问题)、Mac、Android 等客户端,等有这方面的需求在搞。

4:部署优化

4.1:Web 远控加载慢

Web 远控慢是因为 canvaskit.wasm 太大了,足足 6MB 多,如果你服务器上行带宽很大,其实可以忽略。

优化:canvaskit.js 访问的 canvaskit.wasm,可以将访问地址换成网上免费的 插件CDN服务。

cd canvaskit@0.33.0/
vim canvaskit.js
# 搜索 canvaskit.wasm,将后面的 if(!Ab()){var Cb=Bb;Bb=t.locateFile?t.locateFile(Cb,Ca):Ca+Cb} 删除
# 将 Bb 变量修改为 CDN 加速链接,这样节省了带宽又加速了访问
# (如果CDN的带宽还没你服务器带宽大,就别搞这个)
var Bb;Bb="https://cdn.bootcdn.net/ajax/libs/canvaskit-wasm/0.33.0/canvaskit.wasm";

4.2:Systemd 管理

0x01:创建 service 文件,WorkingDirectory 工作目录一定要指定,否则密钥对不会创建 。

cat > /etc/systemd/system/hbbr.service << EOF
[Unit]
Description=RustDesk Hbbs
After=network.target[Service]
User=root
Type=simple
WorkingDirectory=/taosec/remote_control/rustdesk_server
ExecStart=/taosec/remote_control/rustdesk_server/hbbr
ExecStop=/bin/kill -TERM $MAINPID[Install]
WantedBy=multi-user.target
EOFcat > /etc/systemd/system/hbbs.service << EOF
[Unit]
Description=RustDesk Hbbs
After=network.target[Service]
User=root
Type=simple
WorkingDirectory=/taosec/remote_control/rustdesk_server
ExecStart=/taosec/remote_control/rustdesk_server/hbbs
ExecStop=/bin/kill -TERM $MAINPID[Install]
WantedBy=multi-user.target
EOF

0x02:启动 hbbr 和 hbbs 并开机自启动。

systemctl start hbbr
systemctl start hbbs
systemctl enable hbbr
systemctl enable hbbs

4.3:Api 服务器

Api 服务器 (登录、注册、记录等作用) 好像也是 Pro 版本才有,但网上有很多大佬自己开发了 Api 服务器,我在网上查了一下,甚至测试了 1 套,虽然登录没问题,将远程记录放到地址簿中,数据库确实有数据,但重新登录后,却无法获取地址簿的数据,可能是版本更新的原因吧,那套源码是 23 年的,还有一套不错的 Api 项目,可惜只支持 Win。

我看了一眼 Api 服务器的PHP版本的源代码,很简单,几乎是套娃,我也懒得搞了,没这需求,搞得我也累。

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

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

相关文章

window下的随机数与随机数种子——[MTCTF 2021]Random

题目 Die IDA main函数 dword_1B336C 与 v7 ,是两个记录循环次数的计数器 红框:加密逻辑,很简单 绿框:成功条件,需要满足两个,第一个是 dword_1B336C == 43 ,当 dword_1B336C 不等于43的时候进入else,然后需要满足条件 input[v9] == key[v8] 与 v7 == 42 key0x3E, 0x…

【NAS】绿联NAS UGOS PRO 使用natfrp(Sakura Frp)内网穿透访问Docker应用

配置加速 https://registry.cn-hongkong.aliyuncs.com 下载镜像 创建容器 【容器】-【创建】-【手动创建】- 选择你下载的镜像即可在日志中查看密码访问容器 以HTTPS方式访问容器输入从日志中得到的密码。 然后去官网查看访问密钥(不知道官网的就去看截图上的URL)将得到的密钥…

靶机练习:born2root

信息收集 扫描全端口以发现服务发现端口80端口信息: Secretes Company / robots.txt / Wordpress-blog 访问80端口web服务About Us的用户名可以记录下来:Martin Hadi Jimmy robots.txt 有两个路径: /wordpress-blog /files 分别访问一下好像暂时没什么东西,拿用户名可以先爆破…

【进程间通信】——共享内存

目录共享内存 (Shared Memory)前言虚拟内存驻留内存System V 共享内存函数及其用途 Unix系统的System-V版本中就引入了三种进程间通信方式,分别是消息队列、共享内存、信号量集。这三种通信方式也被称为System-V IPC对象。 共享内存 (Shared Memory) 前言 ​ 在下文或接下来的…

对题目集4~6的总结

1.前言答题判题程序-4是前几次题目迭代,在前几次的基础上新增加了选择、填空题,按照之前的思路拓展即可。 家居强电电路模拟程序-1、2总体难度适中,不过与普通的信息处理相比,分配电压要考虑更多情况。2.设计与分析答题判题程序-4点击查看题目 设计实现答题程序,模拟一个小…

Linux之系统故障汇总

一、系统可能会出现的故障 1、管理员密码忘记 2、系统无法正常启动grub损坏(MBR损坏、grub配置文件丢失) 系统初始化故障(某文件系统无法正常挂载、驱动不兼容) 服务故障 用户无法登录系统(bash程序故障)3、命令无法运行 4、编译过程无法继续(开发环境缺少基本组件) 二、单用户…

Microsoft 收集分享

链接:https://pan.baidu.com/s/13Lw4B6Qxq5Y65sAXwWOXYA?pwd=l9wj Windows Server 2022SW_DVD9_Win_Server_STD_CORE_2022_2108.33_64Bit_English_DC_STD_MLF_X23-75607.ISO SHA256:5B4721A21DF2E2D7C20803BB9D64C2B5BF6ED72E612480CF9298969001B65CE8 updated May 2024SW_DV…

一文搞懂 ARM 64 系列: 寄存器

一文搞懂 ARM 64 系列: 寄存器ARM 64中包含多种寄存器,下面介绍一些常见的寄存器。 1 通用寄存器 ARM 64包含31个64bit寄存器,记为X0~X30。 每一个通用寄存器,它的低32bit都可以被访问,记为W0~W30。在这31个通用寄存器中,有2个寄存器比较特殊。 X29寄存器被作为栈帧寄存器…

Vue第三方库与插件实战手册

这篇文章介绍了如何在Vue框架中实现数据的高效验证与处理,以及如何集成ECharts、D3.js、Chart.js等图表库优化数据可视化效果。同时,探讨了Progressive Web App(PWA)的接入与优化策略,以提升Web应用的用户体验与加载速度。title: Vue第三方库与插件实战手册 date: 2024/6/8 …

JPG的解码流程

JPG的解码流程创建解码对象,并且对解码对象进行初始化,创建错误处理对象,并和解码对象进行关联。打开待解码的jpg图片,以二进制方式打开文件读取待解码的jpg图像信息设置解码参数(可选) 开始解码循环读取解码对象中的颜色分量(以行扫描)解码完成,释放解码

C语言实验六

#include <stdio.h> #include <string.h> #define N 3 // 运行程序输入测试时,可以把这个数组改小一些输入测试 typedef struct student {int id; // 学号 char name[20]; // 姓名 char subject[20]; // 考试科目double perf; …