惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

I
InfoQ
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Apple Machine Learning Research
Apple Machine Learning Research
月光博客
月光博客
B
Blog
罗磊的独立博客
GbyAI
GbyAI
博客园 - 三生石上(FineUI控件)
雷峰网
雷峰网
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Microsoft Security Blog
Microsoft Security Blog
宝玉的分享
宝玉的分享
The GitHub Blog
The GitHub Blog
人人都是产品经理
人人都是产品经理
博客园 - Franky
有赞技术团队
有赞技术团队
WordPress大学
WordPress大学
博客园 - 聂微东
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
V
Visual Studio Blog
MyScale Blog
MyScale Blog
Google DeepMind News
Google DeepMind News
G
Google Developers Blog
aimingoo的专栏
aimingoo的专栏

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派
远程控制:Rustdesk Self-host Server「官方文档补全」 - 少数派
2023-06-07 · via 少数派

本文速通:使用 Rustdesk 自建服务,实现多平台远程操控。自建服务器提升速度和画质。

远程操控

远程控制日常是一个常见的需求,但是最近帮女朋友安装软件的时候,发生了一些麻烦的小问题。场景是这样的,她使用的手机是 Android 系统,而她并不会使用 root 提权。所以为了获得控制权限有一定的麻烦。

一个看起来比较可用的方案是「向日葵远程控制」(Sunlogin),但是缺点也非常明显,不能很好适配 Android 客户端。而且在一波操作之后,装了很多软件,控制稳定性也不好,经常断线。为此,我寻找了一下开源的、可自建服务器的软件。很快就发现了「Rustdesk」,事实上,我自己几年前也用过,那个时候的用户数量非常少,直接使用官方服务器甚至都能获得非常流畅的体验。随着近年来的出圈,他们的官方服务器不堪重负,我也随之抛弃了他们。但是这一次为了获得跨平台的远程控制方案,我硬着头皮做了一次部署。

部署的过程踩了很多雷,因为官方文档实在是粗糙了,很多问题并没有说明清楚。在这里提供一份「官方文档补全」供大家参考。

下载安装

首先需要找一个可以承载 Rustdesk Server 的服务器,一般的云服务器厂商都可以胜任。我这边使用的是 Ucloud 的廉价服务器。
 

Rustdesk self-host Tutorial,官方教程提供了一个可以参考的安装路线,但是其中的很多步骤说明的并不详细。

安装我使用的是最简的下载解压方案,直接下载了 Github: Rustdesk Server 中的最新版本。

wget https://github.com/rustdesk/rustdesk-server/releases/download/1.1.7-4/rustdesk-server-linux-amd64.zip
unzip rustdesk-server-linux-amd64.zip
cd amd64

之后看到对应目录下有三个文件:hbbrhbbsrustdesk-utils。其中前两个是我们之后需要使用的。

(可选)如果服务器上启用了 ufw,需要对照下面的教程开启部分端口:

ufw allow 21115:21119/tcp
ufw allow 8000/tcp
ufw allow 21116/udp
sudo ufw enable

参考:UFW firewall configure for Rustdesk Server

部署服务

之后首先进行我们的第一个测试:

./hbbr

测试 Relay 服务器是否能正常启用。

但是有一种情况下,可能发生端口重复使用的情况。和老版本的 Rustdesk Server 的一些 bug 有关,会发生类似下面的报错:

这个时候只能手动 kill 之前已经启用的服务:

sudo netstat -pan | grep ":21117" # 确认端口复用是 hbbr 造成
ps aux | grep hbbr # 确认 hbbr PID
kill xxx(上图中对应的 PID 是 136545)

同理,hbbs 服务会占用 21116 端口,检修方案同上。hbbs 服务可以指定一个 Relay 服务器,所以我和官方文档中启用顺序不同,先启用 hbbr,之后启用 hbbs。(但是理论上应该没有影响,我这样操作个人觉得更符合逻辑)

pm2 自动启动

为了方便自动启动,文档中提到了使用 pm2 进行管理。我这里也参考官方文档进行一些补充。

首先是 npm 的安装,这里可以直接偷懒使用 apt 安装:

sudo apt install npm
sudo npm install -g pm2

之后使用 npm 启动「当前目录下下载好的 hbbr 和 hbbs」

pm2 start ./hbbr
pm2 start ./hbbs -- -r [Server IP]

然后可以在 pm2 list 命令的帮助下查看运行状况:
 

如果这里出现了 error 或者 stopped,有两个主要的可能性:

  1. 之前的端口冲突了,使用上文的方法检查端口使用情况
  2. 使用云服务器厂商需要检查一下防火墙设置是否打开了 21115-21119 的 TCP,其中 21116 同时需要 TCP 和 UDP。这里是在云服务器管理页面进行设置。(为了偷懒,我直接把自己的服务器 2000-60000 的端口全部打开了,大家不要学习)

pm2 的状态正常之后,可以使用 pm2 save 存储 pm2 正在管理的任务。

客户端配置

在 Rustdesk 官网下载最新的客户端之后,点击红框进入设置页面。

之后进入 network 进行相应的配置:

这里 Unlock 之后只需要填写 ID Server 和 Relay Server 即可。填写的时候需要说明连接端口。例如此处我在 ID Server 填写的是 xxx.xxx.xxx.xxx:21116,Relay Server 填写的是 xxx.xxx.xxx.xxx:21117

填写完之后,回到 Rustdesk 连接页面上,可以看到下放再一次变成 Ready 状态了;

之后和任何配置好服务器的设备都可以互相进行远程控制。