自建 RustDesk 实现 iPhone远程控制安卓手机

近期在做某项目时,需要在多把手机上跑矩阵账号,有需要时不时登陆到手机上做一些操作的需求,于是就开始研究如何在 iPhone 上低成本地远程操控其他的安卓手机

市面上其实已经有不少成熟的商业软件在做这个事情,但是使用是需要付费的,如果不想多花钱呢,可以使用开源的 RustDesk ,RustDesk 允许自建服务器来实现远程控制手机,而且对于服务器的要求不高,1c1g 的服务器就可以支撑一个小型工作室的远程需求。对于几乎人手一台服务器的开发者来说,自建 RustDesk 就可以满足 成本远程需求。

1. RustDesk 介绍

与 TeamViewer、ToDesk 等专有远程访问解决方案相比,RustDesk 作为一个开源软件,提供了几个显著的优势:

  1. RustDesk 完全免费使用,没有任何隐藏费用或订阅计划。
  2. 由于其开源特性,RustDesk 的代码是透明的,可以由社区审计,从而提供更高的安全性和可信度。
  3. RustDesk 使用 Rust 语言开发,从根本上确保了程序的内存安全和高性能。
  4. 跨平台,支持 Windows、macOS、Linux、Android 和 iOS 等多种操作系统。
  5. 支持远程唤醒机器,真正做到想连就连,无人值守

然而现在有一个坏消息:由于被zp分子频繁使用,该项目现已暂停国内服务。

如果需要在国内使用,就只能走自建节点这一条路啦~

所谓自建服务器,也就是自建 ID Server 和 Relay Server,至于什么是 ID Server 和 Relay Server,下面我们会给大家详细介绍,并提供一步步的指南来帮助你设置自己的 ID Server 和 Relay Server。

2. RustDesk 架构

要自建 RustDesk,首先要理解下 RustDesk 的架构。RustDesk 由三个组件组成:

  1. 客户端:运行在你的设备上(Windows,macOS,Linux,Android, iPhone)用于连接两个设备的软件,它负责监听来自客户端的连接请求,并在建立连接后向客户端发送屏幕更新和接收输入事件。

  2. 中继服务器(Relay Server):运行在服务器上,充当客户端之间的桥梁,转发来自一方的数据包到另一方。在某些环境中(如经过 NAT 出网)设备之间无法进行 P2P 连接,可以用服务器来中转

  3. ID 服务器(ID Server):运行在服务器上,用于维护客户端及中继服务器的连接信息,促进设备之间建立 P2P 连接。

值得一提的是,即使通过 Relay Server 进行通信,RustDesk 也会维护端到端加密,确保中继服务器无法访问明文数据。Relay Server 只是盲目地转发加密的数据包,而不能查看或修改其内容。

3. RustDesk 部署

3.1 准备服务器

需要将 RustDesk 部署于公网的服务器上,因此在开始部署前,请先准备一台服务器,规格要求不高,1c2g 即可满足。

如果自己还没有服务器的,可购买一个,新用户都优惠很大,几十块钱一年还是挺划算的。

最近大行情不好,各大云厂商也一直在打折促销,在可以点我下面的链接领个卷再去购买比较划算

3.2 开始部署

接下来的操作都要在服务器上操作了,先在服务器上前往 github (github.com/rustdesk/ru... rustdesk

shell 复制代码
wget https://github.com/rustdesk/rustdesk-server/releases/download/1.1.11-1/rustdesk-server-linux-amd64.zip
unzip rustdesk-server-linux-amd64.zip

解压完会出现三个文件,其中:

  • hbbs: 对应前面说的 ID Server,用于分配和注册ID;
  • hbbr: 对应前面说的Relay Server,如果P2P无法连接,会使用hbbr进行流量中继。

接下来需要将 hbbr 和 hbbs 启动起来,在服务器启动二进制文件做为服务运行有许多种方式,如:

  1. nohup:将二进制程序挂载在后台
  2. Service:使用 systemd 来管理
  3. screen:使用 screen 来管理,即使当前会话退出,进程也不会中断

最优雅的方式应该是使用 systemd 管理,但是需要编写 Service 文件。

这里我使用常用的 screen 来运行,请确保你的服务器上已经安装 screen 工具

shell 复制代码
yum install screen -y

然后用如下命令创建一个 hbbr 的会话空间,并启动 hbbr

shell 复制代码
# 创建 hbbr 会话空间
screen -R hbbr

# 启动 hbbr
./hbbr

然后再按快捷键 ctrl+a+d,分离会话

再创建一个 hbbs 的会话空间,并启动 hbbs

shell 复制代码
# 创建 hbbs 会话空间
screen -R hbbs

# 启动 hbbr
./hbbs

启动过程中,请注意记录下日志中的 key

同样再按快捷键 ctrl+a+d,分离会话

分离会话之后,可以通过如下方法查看会话列表,并再次进入会话

3.3 域名解析

为了给工作室里的其他人使用时更方便操作连接,而不需要记 ip,建议可以搞一个二级域名然后解析到服务器上

3.4 防火墙开放端口

默认情况下,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用作中继服务, 21118和21119是为了支持网页客户端。如果您不需要网页客户端(21118,21119 )支持,对应端口可以不开。

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

4. 连接验证

服务端搭建好后,在要连接的两个设备里都 下载 RustDesk 客户端,地址是:github.com/rustdesk/ru...

下面以 Android 为例(注意 iPhone 只能是主控,不能被控)

首先找到 RustDesk 客户端的 设置 -> ID/中继服务器 ,然后输入如下两个信息

  • ID 服务器:{domain}:21116
  • Key:前面记录的那个 key

然后打开 保持 RustDesk 后台服务开机自启动,以确保进程不会被杀掉

切换到 共享屏幕 启动服务,并且要打开 输入控制 否则只能查看屏幕无法控制,启动服务后,就可以用设备提示的 ID 和一次性密码在主控上输入进行连接,不过为后续更方便无人值守连接,可以在客户端为设备固定密码,然后在主控上用固定密码连接,注意点保存密码,下次就可以直接连接了~

相关推荐
luoganttcc14 分钟前
能否推荐开源GPU供学习GPU架构
学习·开源
ai产品老杨18 分钟前
部署神经网络时计算图的优化方法
人工智能·深度学习·神经网络·安全·机器学习·开源
王二端茶倒水2 小时前
大龄程序员兼职跑外卖第五周之亲身感悟
前端·后端·程序员
檀越剑指大厂3 小时前
开源AI大模型工作流神器Flowise本地部署与远程访问
人工智能·开源
weixin_446260853 小时前
开源vs闭源:你更看好哪一方?
开源
技术仔QAQ3 小时前
【tokenization分词】WordPiece, Byte-Pair Encoding(BPE), Byte-level BPE(BBPE)的原理和代码
人工智能·python·gpt·语言模型·自然语言处理·开源·nlp
tumu_C5 小时前
C++模板特化实战:在使用开源库boost::geometry::index::rtree时,用特化来让其支持自己的数据类型
c++·开源
AI服务老曹5 小时前
不仅能够实现前后场的简单互动,而且能够实现人机结合,最终实现整个巡检流程的标准化的智慧园区开源了
大数据·人工智能·深度学习·物联网·开源
william8235 小时前
Information Server 中共享开源服务中 kafka 的__consumer_offsets目录过大清理
分布式·kafka·开源
Goboy5 小时前
工欲善其事,必先利其器;小白入门Hadoop必备过程
后端·程序员