V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
LongLights
V2EX  ›  分享发现

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

  •  
  •   LongLights · 24 天前 · 1122 次点击

    为何青睐 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 客户端啦~

    4 条回复    2025-06-21 23:49:05 +08:00
    coolfan
        1
    coolfan  
       24 天前
    点赞 做了我之前灵光一闪的想法
    kekxv
        2
    kekxv  
       24 天前 via iPhone
    没必要把密码放代码里面,直接用 sed 替换,把密码放到 github 的安全变量里面,服务器也是
    ferock
        3
    ferock  
    PRO
       24 天前 via Android
    其实,服务端自己搭建,客户端直接用官网成品没啥不好的
    gux928
        4
    gux928  
       24 天前 via iPhone
    @ferock #3 可以省去输入自定义服务器地址的步骤,给小白或者老人远程的时候特别有用
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5928 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 02:08 · PVG 10:08 · LAX 19:08 · JFK 22:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.