久光本光的主页 久光本光的主页
  • 首页
  • 知识区
  • 影视区
  • 游戏区

久光本光

管理员
听不见音乐的人以为跳舞的人疯了
文章
15
评论
0
久光本光
2 月前

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

文章字数:2062
阅读时间: 6 分钟

前期准备

  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中修改RENDEZVOUS_SERVERS字段为自己的服务器地址,修改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仓库到本地,cd到rustdesk目录。
首先彻底删除官方源码中的引用hbb_common子模块,记得windows打开显示隐藏文件:
输入指令:

git rm --cached libs/hbb_common

删除 .gitmodules中的所有内容(并非删除文件本身)
删除 .git文件下config中的相关子模块信息(如果有,内容和.gitmodules中的应该一样)
删除 .git文件夹下的libs目录(如果有)

成功删除后再添加上面自己修改过的hbb_common子模块,输入指令:

git submodule add https://github.com/<你的用户名>/hbb_common.git libs/hbb_common

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

git submodule sync
git submodule update --remote

查找到rustdesk仓库中src/common.rs文件的get_custom_rendezvous_server这个函数,下面有个官方的api地址,将其替换成自己的

找到rustdesk仓库中src/common.rs文件的“secure_tcp(conn: &mut Stream, key: &str) -> ResultType<()>”字段,将下面的“if use_ws()”判断去掉直接return ok

可选:flutter/lib/desktop/pages/connection_page.dart文件中,搜索到setupServerWidget() => Flexible(相关代码块,修改为

  Widget setupServerWidget() => Flexible(
      child: Offstage(
        offstage: !(!_svcStopped.value &&
            stateGlobal.svcStatus.value == SvcStatus.ready &&
            _svcIsUsingPublicServer.value),
        child: Row(
          crossAxisAlignment: CrossAxisAlignment.center,
          children: [], 
        ),
      ),
    );

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

git add .
git commit -m "修改子模块仓库地址+修改自定义内置信息"
git push
  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页找到Flutter Tag Build,选择"run workflow"并点开branch下拉,选择刚才创建的标签(并非图片指向的Full Flutter CI,这个模式也可以但是不会打包成单exe并自动发布在releases)
使用github action编译自定义rustdesk客户端指南(内置自己的服务器信息、内置固定密码、内置自定义api服务器)-久光本光的主页

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

  • 知识区
359

关注久光本光

Copyright © 2025 久光本光的主页. All rights reserved. Designed by nicetheme. 苏ICP备2024106004号
  • 首页
  • 知识区
  • 影视区
  • 游戏区