使用 github action 编译自定义 rustdesk 客户端指南(内置服务器信息、内置固定密码、内置自定义 api 服务器) - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
LongLights
V2EX    分享发现

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

  •  
  •   LongLights 127 天前 1603 次点击
    这是一个创建于 127 天前的主题,其中的信息可能已经有所发展或是发生改变。

    为何青睐 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  
       127 天前
    点赞 做了我之前灵光一闪的想法
    kekxv
        2
    kekxv  
       127 天前 via iPhone
    没必要把密码放代码里面,直接用 sed 替换,把密码放到 github 的安全变量里面,服务器也是
    ferock
        3
    ferock  
    PRO
       127 天前 via Android
    其实,服务端自己搭建,客户端直接用官网成品没啥不好的
    gux928
        4
    gux928  
       127 天前 via iPhone
    @ferock #3 可以省去输入自定义服务器地址的步骤,给小白或者老人远程的时候特别有用
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5618 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 09:03 PVG 17:03 LAX 02:03 JFK 05:03
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86