剪藏#LongLightLv 3楼主#剪藏

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

2025 年 7 月 9 日1 分钟
分享Twitter / XTelegram微博
使用github action编译自定义rustdesk客户端指南(内置自己的服务器信息、内置固定密码、内置自定义api服务器) 封面

为何青睐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字段 将那一整行替换为如下代码块:

JAVASCRIPT
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子模块
JAVASCRIPT
git submodule add https://github.com/<你自己的github用户名>/hbb_common libs/hbb_common

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

JAVASCRIPT
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

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

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

回到本地rustdesk仓库,输入

JAVASCRIPT
git push --tags

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

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

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

原文地址: https://www.nodeseek.com/post-370529-1

相关文章