如何让网站快速收录,宁波网络设计有限公司有哪些,网页制作模板水果,未来网站建设想法title: 《树莓派4B家庭服务器搭建指南》第二十一期#xff1a;安装开源远程桌面服务rustdesk, 内网丝滑,外网流畅控制Windows,macOS,Linux设备 tags:
个人成长 categories:树莓派不吃灰 前段时间, 有一台老式MacBook Pro被我改造成了影视资源解码主机, 《树莓派4B家庭服务器搭…
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: 3networks: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焕发流光溢彩。