使用 github action 编译自定义 rustdesk 客户端指南(内置服务器信息、内置固定密码、内置自定义 api 服务器)

25 天前
 LongLights

为何青睐 rustdesk

远程功能刚需,parsec 近期总是延迟莫名爆表,故而转投 rustdesk 。在搭建了自己的信号、中继服务器和第三方 api 以后,无比心水官方付费的自定义客户端功能,因此采用了本篇的廉价 0 元方案。

前期准备

  1. 会使用 git 远程连接 github 仓库,并会简单的 git push 指令
  2. 已搭建好 rustdesk 自托管服务器和 api 服务器
  3. 本指南适用于目前最新的 1.4.0 版本

操作指南

  1. fork 或者 import rustdesk/hbb_common 和 rustdesk/rustdesk 这两个项目(建议 import 并设置不公开,因为后面如果需要固定被控端密码的话,你的密码会以明文的形式公开在自己名下的仓库中)
  2. 针对 hbb_common 仓库的操作 git clone 你自己名下的 hbb_common 仓库到本地,在 src/config.rs 中修改 RSENDZVOUS_SERVER 字段为自己的服务器地址,修改 RS_PUB_KEY 字段为自己的服务器 key (简单的替换即可)

还是 src/config.rs 文件,找到 HARD_SETTINGS 字段 将那一整行替换为如下代码块:

 pub static ref HARD_SETTINGS: RwLock<HashMap<String, String>> = {
        let mut map = HashMap::new();
        map.insert("password".to_string(), "<明文填写你要固定的被控端密码>".to_string());
        RwLock::new(map)
    };

最后,将以上所有调整 push 到 github 仓库 ( hbb_common 仓库的相关改动直接在网页修改也可以)

  1. 针对 rustdesk 仓库的操作 git clone 你自己名下的 rustdesk 仓库到本地,首先删除官方源码中的引用 hbb_common 子模块(直接在本地删除 libs/hbb_common 那个空文件夹即可) cd 到本地 rustdesk 仓库根目录,添加上面自己修改过的 hbb_common 子模块
git submodule add https://github.com/<你自己的 github 用户名>/hbb_common libs/hbb_common

替换过子模块后 push ,再输一次如下指令强制更新子模块

git submodule sync

查找到 rustdesk 仓库中 src/common.rs 文件的 get_custom_rendezvous_server 这个函数,下面有个官方的 api 地址,将其替换成自己的,最后 push (这一步其实也可以直接在网页操作)

对两个仓库所作的修改完毕,务必记得一定要 push 到 github 上自己名下的仓库!!!

  1. 使用 github action 在线编译 在<自己名下的>/rustdesk 项目,找到 Settings -> Actions -> General ,确保勾选 Allow all actions and reusable workflows 和 Read and write permissions 两项

回到本地 rustdesk 仓库,创建一个 tag

git tag -a <自己拟一个 tag 名> -m "这是我的自定义客户端 tag"

在<自己名下的>/rustdesk 项目,找到 Actions ,点击"i understand xxxx"那个按钮

回到本地 rustdesk 仓库,输入

git push --tags

将刚才新创建的标签同步到远程仓库

在 actions 页找到 Full Flutter CI ,选择"run workflow"并点开 branch 下拉,选择刚才创建的标签

然后,愉快的开始 run ,等跑完去 releases 就能下到自己的专属 rustdesk 客户端啦~

1126 次点击
所在节点    分享发现
4 条回复
coolfan
24 天前
点赞 做了我之前灵光一闪的想法
kekxv
24 天前
没必要把密码放代码里面,直接用 sed 替换,把密码放到 github 的安全变量里面,服务器也是
ferock
24 天前
其实,服务端自己搭建,客户端直接用官网成品没啥不好的
gux928
24 天前
@ferock #3 可以省去输入自定义服务器地址的步骤,给小白或者老人远程的时候特别有用

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1140142

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX