《树莓派4B家庭服务器搭建指南》第二十一期:安装开源远程桌面服务rustdesk, 内网丝滑,外网流畅控制
title: 《树莓派4B家庭服务器搭建指南》第二十一期:安装开源远程桌面服务rustdesk, 内网丝滑,外网流畅控制Windows,macOS,Linux设备
tags:
- 个人成长
categories: - 树莓派不吃灰
前段时间, 有一台老式MacBook Pro被我改造成了影视资源解码主机, 《树莓派4B家庭服务器搭建指南》第十七期:树莓派配合性能更好的闲置笔记本搭建开源免费jellyfin私人影院 https://v2fy.com/p/2023-06-10-jellyfin-1686388142000/ , 我想通过远程桌面访问这台MacBook Pro, 发现Mac虽然原生支持VNC连接,但实际用起来经常画面撕裂,于是我找了一款开源的远程桌面程序rustdesk, 将其服务部署在树莓派上,实现局域网设备丝滑访问, 外网设备也可以通过内网穿透直接访问macOS
rustdesk 的Github开源地址 https://github.com/rustdesk/rustdesk
在树莓派部署rustdesk,实现局域网Windows控制macOS
# 创建挂载目录
mkdir -p /opt/rustdesk
chmod 755 -R /opt/rustdesk
# 创建用于存放docker-compose.yml的目录
mkdir -p /opt/rustdesk-docker-compose-yml
chmod 755 -R /opt/rustdesk-docker-compose-yml
# 创建docker-compose.yml
touch /opt/rustdesk-docker-compose-yml/docker-compose.yml
在docker-compose.yml
中写入配置内容
cat << 'EOF' > /opt/rustdesk-docker-compose-yml/docker-compose.yml
version: '3'networks:rustdesk-net:external: falseservices:hbbs:container_name: hbbsports:- 21115:21115- 21116:21116- 21116:21116/udp- 21118:21118image: rustdesk/rustdesk-server:latestcommand: hbbs -r rustdesk.example.com:21117volumes:- /opt/rustdesk:/rootnetworks:- rustdesk-netdepends_on:- hbbrrestart: unless-stoppedhbbr:container_name: hbbrports:- 21117:21117- 21119:21119image: rustdesk/rustdesk-server:latestcommand: hbbrvolumes:- /opt/rustdesk:/rootnetworks:- rustdesk-netrestart: unless-stopped
EOF
- 启动服务
cd /opt/rustdesk-docker-compose-yml/
sudo docker-compose up -d
我的树莓派局域网IP为192.168.50.10
, 将192.168.50.10
填入rustdesk 的客户端即可(发起端和被控端都需要下载安装rustdesk客户端,并填写好ID Server), rustdesk客户端下载地址 https://github.com/rustdesk/rustdesk/releases
客户端保存后,会显示配置成功
配置完成后,我们就可以通过树莓派运行的rustdesk服务,进行局域网内设备相互远程控制了
被控制主机的ID不会变(除非用户主动改),但密码经常会随机变化,如果你想使用固定密码,可以直接按照下图进行设置
显示方面可以自定义设置,局域网的延迟可以到5ms, 用Windows控制macOS非常顺滑跟手
遇到的一个小坑:如果MacBook不外接显示器合上盖子,rustdesk经常会几十秒就自动断开,如果你也是想控制MacBook,请不要合上盖子。
让家里树莓派的rustdesk服务支持外网访问
外网访问其实也很简单,用frp做几个端口映射就好了
- 在树莓派的frpc.ini文件中新增以下配置,重启frpc即可
[rustdesk-tcp-21115]
type = tcp
local_ip = 127.0.0.1
local_port = 21115
remote_port = 21115[rustdesk-tcp-21116]
type = tcp
local_ip = 127.0.0.1
local_port = 21116
remote_port = 21116[rustdesk-udp-21116]
type = udp
local_ip = 127.0.0.1
local_port = 21116
remote_port = 21116[rustdesk-tcp-21117]
type = tcp
local_ip = 127.0.0.1
local_port = 21117
remote_port = 21117[rustdesk-tcp-21118]
type = tcp
local_ip = 127.0.0.1
local_port = 21118
remote_port = 21118[rustdesk-tcp-21119]
type = tcp
local_ip = 127.0.0.1
local_port = 21119
remote_port = 21119
如果想让内网主机A可以接收外网连接,我们需要将内网主机A的ID server设置为云服务器IP(云服务器的IP为公网IP, 会接收请求,并转发到树莓派)
当然,外网发起控制的主机,也要设置外网IP, 才能发起控制。
如果发起控制端在家庭内网环境下,可以将ID server 设置为树莓派内网IP,也可以设置为云服务器公网IP
直接将rustdesk服务放到服务器运行不就好了,为何要放在树莓派运行?
rustdesk有两个服务,hbbs负责验证签名,hbbr负责转发远程控制产生的数据包。
我们在设置界面,只填写了hbbs信息(ID server) ,没有填写hbbr信息,hbbr就会自动判断是否走公网流量。
如果我们的被控主机和发起控制的主机都在内网,二者就会直接走内网流量,体验将无比丝滑。
当然控制端或被控端,一旦离开了内网,就走云服务器转发流量。
那ID server到底应该怎么填?
只要在外网,控制端和被控制端,一律填写外网IP!
如果在内网,控制端和被控端,依然可以全部填写外网IP;(如果被控端和控制端设备同时在内网,会自动走内网流量,无比顺滑)
如果某台设备,只希望被内网的设备连接,则填写内网IP!
(内网IP是指树莓派IP, 外网IP是指云服务器IP)
小结
我看到有些youtuber把mac mini改成了家庭服务器,由于macOS对VNC协议的负优化,导致画面撕裂,于是只能捏着鼻子用ssh连接服务器,但我感觉放弃macOS顺滑的动画太可惜了, 于是就有了树莓派运行开源rustdesk的方案。
虽然有Teamviewer , ToDesk , 向日葵等方案,但都无法实现内网丝滑流畅的远程桌面体验。
这个树莓派rustdesk方案保证了远程桌面内网丝滑,外网流畅,即使没有树莓派,也可以通过虚拟机运行rustdesk服务器实现,让老旧的MacBook焕发流光溢彩。
相关文章:
《树莓派4B家庭服务器搭建指南》第二十一期:安装开源远程桌面服务rustdesk, 内网丝滑,外网流畅控制
title: 《树莓派4B家庭服务器搭建指南》第二十一期:安装开源远程桌面服务rustdesk, 内网丝滑,外网流畅控制Windows,macOS,Linux设备 tags: 个人成长 categories:树莓派不吃灰 前段时间, 有一台老式MacBook Pro被我改造成了影视资源解码主机, 《树莓派4B家庭服务器搭…...
Redis 分布式锁
面试题: Redis除了拿来做缓存,你还见过基于Redis的什么用法? 1.数据共享,分布式Session 2.分布式锁 3.全局ID 4.计算器、点赞 5.位统计 6.购物车 7.轻量级消息队列:list、stream 8.抽奖 9.点赞、签到、打卡 10.差集交集…...
水循环原理VR实景教学课件开发
日本核污水排海让人们越来越重视海洋大气层水循环的安全,水循环是一个周而复始、循环往复的动态过程,为了将水循环过程以形象、生动地形式展示出来,水循环VR全景动态演示逐渐受到大家青睐。 传统的水循环教育方式通常是通过图片、动画或实地考…...
[小尾巴 UI 组件库] 全屏响应式轮播背景图(基于 Vue 3 与 Element Plus)
文章归档于:https://www.yuque.com/u27599042/row3c6 组件库地址 npm:https://www.npmjs.com/package/xwb-ui?activeTabreadme小尾巴 UI 组件库源码 gitee:https://gitee.com/tongchaowei/xwb-ui小尾巴 UI 组件库测试代码 gitee:…...
关于ESP32S3无法识别到端口问题
前言 (1)因为实习问题,需要使用ESP32BOX进行二次开发。一般来说,接触一款MCU,3天上手是基本操作。但是对于乐鑫的芯片,环境搭建是真的折磨人(苦笑),而且官方文档几乎没有…...
如何判断bug是前端bug还是后端bug
1.前后端bug 特征: 前端主要负责显示数据,后端主要负责处理数据、存储数据,前后端主要通过接口进行数据交换。 前端bug的特征: 界面显示类问题:如文字大小不一,控件颜色不搭,控件不整齐&#x…...
EasyExcel填充数据EasyExcel填充数据流下载 easyexcel填充excel下载 easyexcel填充
EasyExcel填充数据EasyExcel填充数据流下载 easyexcel填充excel下载 easyexcel填充 1、填充数据然后将文件输出给浏览器 1、填充数据然后将文件输出给浏览器 官网地址 官网的demo填充生成的是file文件, 实际需求用的最多的是 填充完数据将Excel输出给浏览器 填充模版Excel文…...
精通数据集成:轻易云数据集成平台应用实战与技术内幕
企业系统中数据交互的重要性不言而喻。一个系统如果孤立运行,即使积累了海量数据,仍然是一座信息孤岛。另一方面,一个积极参与数据交互的系统,成为各系统之间的“交际花”,具备中台的性质。 然而,大多数情况…...
“2023中国数字化服务之选”榜单发布,谷器数据荣耀登榜!
9月7日,行业权威媒体Internet Deep联合eNET研究院、德本咨询重磅发布了“2023中国数字化服务之选”榜单,经专家评审认定,谷器数据凭借领先的综合技术实力与产品应用创新能力荣耀登榜! 谷器数据生产制造数字化服务根据客户整体需求…...
iisfastchi漏洞复现
1.查看版本 2.在路径中写入 php脚本 发现使用不了 3.环境搭建 结局打开 把限制打开...
虚拟机Ubuntu操作系统常用终端命令(详细解释+详细演示)
虚拟机Ubuntu操作系统常用终端命令 本篇讲述了Ubuntu操作系统常用的三个功能,即归档,软链接和用户管理方面的相关知识。希望能够得到大家的支持。 文章目录 虚拟机Ubuntu操作系统常用终端命令二、使用步骤1.归档1.1创建档案包1.2还原档案包1.3归档并压缩…...
【力扣每日一题】2023.9.12 课程表Ⅳ
目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 今天是课程表系列题目的最后一题,因为我在题库里找不到课程表5了,所以今天的每日一题就是最后一个课程表了。 题…...
CentOS 安装HTTP代理服务器 Tinyproxy
Tinyproxy是一个小型的基于GPL的HTTP/SSL代理程序,非常适合小型网络而且便于快速部署。这个代理程序最大的优点就是占用系统资源比较少。这里使用的系统为CentOS7.6,可以直接 yum 方式安装。 yum install tinyproxy -y 如果提示找不到安装包࿰…...
PHPWord 模板输出checkbox复选框和checked已勾选状态,以及 模板替换时数据如何分行
PHPWord 模板输出checkbox复选框和checked已勾选状态,以及 模板替换时数据如何分行 期望目标 和 模板配置复选框代码数据分行显示在使用PHPWORD模板替换时,经常会有 动态渲染选择项 和 选择项需要被勾选的要求,以及动态数据分行显示等要求。 本文根据 空复选框、勾选复选框…...
vue学习之 v-for key
v-for key Vue使用 v-for渲染的元素列表时,它默认使用“就地更新”的策略。如果数据项的顺序被改变,Vue 将不会移动 DOM元素来匹配数据项的顺序,而是就地更新每个元素。创建 demo9.html,内容如下 <!DOCTYPE html> <html lang"…...
ARM接口编程—IIC总线(exynos 4412平台)
IIC总线简介 IIC总线是Philips公司在八十年代初推出的一种串行、半双工总线 主要用于近距离、低速的芯片之间的通信;IIC总线有两根双向的信号线一根数据线SDA用于收发数据,一根时钟线SCL用于通信双方时钟的同步;IIC总线硬件结构简单ÿ…...
ReactNative进阶(二十一)开源插件 react-native-device-info 获取设备信息
文章目录 一、前言二、拓展阅读 一、前言 项目开发过程中,需要获取设备信息,例如获取设备名称。可通过使用开源的第三方组件react-native-device-info,该组件适用于iOS和Android双平台。 在ReactNative项目中可通过npm命令下载 react-nativ…...
MySql学习笔记05——DML
DML 插入数据insert insert into 表名(字段名1,字段名2,字段名3...)values(值1,值2,值3);字段名和值要一一对应(顺序对应,数据类型对应) insert into t_student(no,name,sex,age,…...
halcon对图片进行处理基础
实例图片 C:\Users\Public\Documents\MVTec\HALCON-19.11-Progress\examples\images*读取图片 read_image (Image1, D:/c/image/1.png) *读取大小 get_image_size(Image1,Width, Height) *创建窗口 dev_close_window() dev_open_window(0, 0, Width, Height, black, WindowHan…...
element-ui在vue中如何实现校验两个复选框至少选择一个!
整体进行验证 想验证至少选择一个复选框,可以将这两个复选框视为一个整体进行验证。在 Element UI 中,可以使用自定义验证规则来实现这一点。 你可以在 rules 对象中定义一个自定义的验证规则来检查 isCheck1 和 isCheck2 至少有一个被选中。 以下是一…...
DeepinV20/Ubuntu安装postgresql方法
首先,建议看一下官方的安装文档PostgreSQL: Linux downloads (Ubuntu) PostgreSQL Apt Repository 简单的说,就是Ubuntu下的Apt仓库,可以用来安装任何支持版本的PgSQL。 If the version included in your version of Ubuntu is not the one…...
汽车ECU软件升级方案介绍
软件OTA的背景 随着汽车网联化的发展,现在的汽车电子架构都支持软件空中升级,即大家常说的OTA(Software Update and Upgrade Over the Air),传统的软件升级常常是离线升级,需要车主将车开到维修保养中心进行软件更新。不过OTA升级方式带来方便之处需要考虑的问题也随之增…...
首家!亚信科技AntDB数据库完成中国信通院数据库迁移工具专项测试
近日,在中国信通院“可信数据库”数据库迁移工具专项测试中,湖南亚信安慧科技有限公司(简称:亚信安慧科技)数据库数据同步平台V2.1产品依据《数据库迁移工具能力要求》、结合亚信科技AntDB分布式关系型数据库产品&…...
为什么好多人想辞职去旅行?
一、“世界那么大,我想去看看。” 这句话成为了网络上的一句流行语。这句话的出处就是在一位女教师的一份辞职申请上,这样的辞职理由是多少人想干却不敢干的事情。这句话的流行,反映了现代社会中人们对于探索未知世界和追求个人梦想的渴望。在这个快速发展的时代&am…...
vim的使用介绍以及命令大全
懒羊羊感谢大家的关注和三连支持~ 目录 前言 一、vim的使用介绍 二、命令大全 1.命令模式 (1)复制(配合粘贴命令p使用) (2)剪切 (3)粘贴 (4)删除 …...
JavaScript高级技巧:深入探索JavaScript语言的高级特性和用法
当我们谈论JavaScript高级技巧时,以下是一些示例来说明这些概念: 闭包(Closures): function outerFunction() {var outerVariable Hello;function innerFunction() {console.log(outerVariable);}return innerFunct…...
虹科方案|HK-Edgility利用边缘计算和VNF降本增效
一、边缘计算和 VNF 在当今瞬息万变的数字环境中,边缘虚拟化网络功能(VNF)是一个既能够优化网络基础设施,又能控制成本的创新型解决方案。它使客户能够将多个基于软件的 VNF 整合到一个专用计算设备上。更值得高兴的是,…...
SpringBoot项目--电脑商城【新增收货地址】
1.新增收货地址 t_address CREATE TABLE t_address (aid INT AUTO_INCREMENT COMMENT 收货地址id,uid INT COMMENT 归属的用户id,name VARCHAR(20) COMMENT 收货人姓名,province_name VARCHAR(15) COMMENT 省-名称,province_code CHAR(6) COMMENT 省-行政代号,city_name VARC…...
[HNCTF 2022 Week1]——Web方向 详细Writeup
Week1 [HNCTF 2022 Week1]2048 f12查看源代码 可以看出游戏的分数是score 修改score的值 得到flag [HNCTF 2022 Week1]Interesting_include 得到源码 <?php //WEB手要懂得搜索 //flag in ./flag.phpif(isset($_GET[filter])){$file $_GET[filter];if(!preg_match(&qu…...
3dmax vray如何创建真实的灯光?3dmax vray 室内照明教程
为什么良好的照明很重要? 通过仔细操纵光源并利用 V-Ray 的功能,您将解锁制作超越普通渲染的能力,让观众着迷。每个阴影和每个高光都有一个目的 - 通过注意掌握照明,您的渲染将变得栩栩如生,并为您的室内设计赋予独特…...
网站建设案例简介怎么写/seo优化网站推广全域营销获客公司
Qt安装Windows调试器 1. 打开网址:https://developer.microsoft.com/zh-cn/windows/downloads/windows-10-sdk,选择“下载安装程序”,下载“winsdksetup.exe”; 2. 打开“winsdksetup.exe”,按下述步骤操作ÿ…...
个人建站如何赚钱/鞍山seo外包
一,浮点数的2种表示形式 二,浮点数使用的注意事项 ①浮点数不应进行大小比较 ②小数转二进制的做法:乘2并顺序取整数部分③当整数运算的结果超出整数的范围后,会自动转换为浮点数 转载于:https://www.cnblogs.com/you…...
上海电商网站开发/百度分析工具
原文:从头开始学JavaScript (二)——变量及其作用域一、变量 ECMAscript变量是松散型变量,所谓松散型变量,就是变量名称可以保存任何类型的数据,每个变量仅仅是一个用于保存值的占位符。 定义:var firstDemo; 二、变量的作用域 2.…...
自己免费建设网站/寻找客户的渠道和方法
之前一直用图形化界面,加上考研期间也没动,竟然把我的数据库密码给忘了,无地自容.......找了找教程,问题如下:MySQL从低版本向高版本迭代变化的过程,越来越严谨的安全性是其一大特点之一,在版本…...
网站开发高级工程师专业/今日最新消息
imei 设备号 imsi 串号 客户号 都是15位 iccid 20位...
网页设计与网站建设 在线测试/seo网站推广教程
先点hex 后点 decimal 再开始start attack,这是一个软件bug,需要手动让它刷新。...