RustDesk 搭建
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
EOF
cat > /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版本的源代码,很简单,几乎是套娃,我也懒得搞了,没这需求,搞得我也累。
5:Docker 部署#
# host是与宿主机共享网络,-r是指定中继服务器IP(端口可选),由于我们是 host 模式,所以 ip 填宿主机的就可以
docker run --restart=always --name hbbs -v /opt/rustdesk/hbbs/root:/root -td --net=host rustdesk/rustdesk-server hbbs -r 10.0.0.11 -k 123456
docker run --restart=always --name hbbr -v /opt/rustdesk/hbbr/root:/root -td --net=host rustdesk/rustdesk-server hbbr
作者:TaoSec
出处:https://www.cnblogs.com/TaoSec/p/18239044
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
声明:所有文章均可转载,不留 出处 是很不礼貌的一种行为 ~~,请尊重知识产权!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
2021-06-08 OpenLDAP+samba