自建 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 和一次性密码在主控上输入进行连接,不过为后续更方便无人值守连接,可以在客户端为设备固定密码,然后在主控上用固定密码连接,注意点保存密码,下次就可以直接连接了~

相关推荐
ajassi200027 分钟前
开源 C# .net mvc 开发(八)IIS Express轻量化Web服务器的配置和使用
linux·开源·c#·mvc·.net
HelloGitHub39 分钟前
从被喷“假开源”到登顶 GitHub 热榜,这个开源项目上演王者归来!
开源·github
AI大模型1 小时前
COZE实战部署(四)—— coze实战部署
程序员·llm·coze
wei_shuo1 小时前
百度开源文心 4.5 系列开源大模型 GitCode 本地化部署,硅基流动:文心 vs. DeepSeek vs. Qwen 3.0 深度测评
百度·开源·文心大模型·gitcode
AI生存日记10 小时前
百度文心大模型 4.5 系列全面开源 英特尔同步支持端侧部署
人工智能·百度·开源·open ai大模型
步、步、为营11 小时前
.net开源库SignalR
开源·.net
马可奥勒留12 小时前
《你以为职场是过家家?真正的高手都在用「职业化人际关系模型」》
程序员
袁煦丞12 小时前
数据库设计神器DrawDB:cpolar内网穿透实验室第595个成功挑战
前端·程序员·远程工作
codeGoogle13 小时前
不吹不黑理性讨论:疑似华为员工匿名指控盘古大模型造假,你怎么看?
程序员
国服第二切图仔14 小时前
文心开源大模型ERNIE-4.5-0.3B-Paddle私有化部署保姆级教程及技术架构探索
百度·架构·开源·文心大模型·paddle·gitcode