通过 Github 编译自定义的 RustDesk 客户端
1、自定义 RustDesk 客户端的作用
-
别人使用 RustDesk 客户端时,不需要再进行比较复杂的网络设置。
-
避免泄露 RustDesk 服务的 IP 、端口以及 Key 信息,防止别人随意滥用。
-
别人只能通过你自定义的 RustDesk 客户端,才能使用你的 RustDesk 中继服务。
2、前期准备工作
3、导入 RustDesk 子模块到 Github 私有仓库
3.1、克隆 RustDesk 子模块到本地仓库

如上图所示,使用 Git 工具,将官方的 RustDesk 子模块(hbb_common)克隆到本地仓库。
git clone https://github.com/rustdesk/hbb_common.git
3.2、进入 RustDesk 子模块目录

如上图所示,进入 RustDesk 子模块目录 hbb_common ,后续步骤在这个目录中操作。
cd hbb_common/
3.3、移除官方的远程仓库地址

如上图所示,移除 RustDesk 子模块(hbb_common)的官方远程仓库地址,相当于将官方远程仓库和本地仓库解绑。
git remote remove origin
3.4、创建子模块的 Github 私有远程仓库

如上图所示,在自己 Github 账号中,新建一个远程仓库。

如上图所示,为远程仓库设置名称(最好和子模块 hbb_common 的名称一致),并将权限设为私有(为了不泄露 RustDesk 服务的 IP、端口、Key 等信息)。

如上图所示,远程仓库创建成功后,可以得到其仓库地址的链接。
3.5、设置新的远程仓库地址

如上图所示,为本地仓库 RustDesk 子模块(hbb_common)设置一个新的远程仓库地址,相当于将私有远程仓库和本地仓库绑定。
git remote add origin https://github.com/用户名/仓库名.git
3.6、推送本地仓库到私有远程仓库

如上图所示,推送本地仓库的内容,到私有远程仓库。
这样做,相当于通过本地仓库作为中转,克隆了官方远程仓库的内容,到私有远程仓库。
git push -u origin --all
git push -u origin --tags
提示:往远程仓库推送内容,需要登录具备相应权限的 GitHub 账号;具体操作请参考本文 4.6 小节。
4、导入 RustDesk 主模块到 Github 私有仓库
4.1、克隆 RustDesk 主模块到本地仓库

如上图所示,使用 Git 工具,将官方的 RustDesk 主模块克隆到本地仓库。
git clone https://github.com/rustdesk/rustdesk.git
4.2、进入 RustDesk 主模块目录

如上图所示,进入 RustDesk 主模块目录,后续步骤在这个目录中操作。
cd rustdesk/
4.3、移除官方的远程仓库地址

如上图所示,移除 RustDesk 主模块的官方远程仓库地址,相当于将官方远程仓库和本地仓库解绑。
git remote remove origin
4.4、创建主模块的 Github 私有远程仓库

如上图所示,在自己 Github 账号中,新建一个远程仓库。

如上图所示,为远程仓库设置名称(最好和主模块 rustdesk 的名称一致),并将权限设为私有(为了不泄露 RustDesk 服务的 IP、端口、Key 等信息)。

如上图所示,远程仓库创建成功后,可以得到其仓库地址的链接。
4.5、设置新的远程仓库地址

如上图所示,为本地仓库 RustDesk 主模块设置一个新的远程仓库地址,相当于将私有远程仓库和本地仓库绑定。
git remote add origin https://github.com/用户名/仓库名.git
4.6、推送本地仓库到私有远程仓库

如上图所示,推送本地仓库的内容,到私有远程仓库。
这样做,相当于通过本地仓库作为中转,克隆了官方远程仓库的内容,到私有远程仓库。
git push -u origin --all
git push -u origin --tags
提示:往远程仓库推送内容,需要登录具备相应权限的 GitHub 账号。
如上图所示,因为已在浏览器中登录了 GitHub 账号,所以可以直接点击“Sign in with your browser”按钮,跳转到浏览器页面进行授权。

如上图所示,点击“Authorize git-ecosystem”按钮,即可将浏览器中的 GitHub 账号登录状态,同步到 Windows 系统中。

如上图所示,输入 GitHub 账号的密码,确认授权。

如上图所示,授权成功。
5、修改子模块的引用
5.1、修改 .gitmodules 文件

如上图所示,在本地仓库 RustDesk 主模块的 .gitmodules 文件中,修改子模块的引用地址。
具体操作就是,将子模块的官方远程仓库地址,修改为自己创建的私有远程仓库地址。
5.2、同步子模块的引用修改

git submodule sync
5.3、推送引用修改到私有远程仓库

git add .gitmodules
git commit -m "更新子模块地址"
git push origin master
5.4、确认引用修改的效果

如上图所示,在 RustDesk 主模块的私有远程仓库中,可以看到子模块的引用地址已经指向了自己创建的私有远程仓库地址。
6、替换中继服务的地址
6.1、进入子模块目录

如上图所示,从本地仓库的主模块目录切换到子模块目录。
因为中继服务的地址,储存在子模块的文件中,所以要在子模块的目录下进行修改文件的操作。
cd ../hbb_common/
6.2、修改子模块的 config.rs 文件

如上图所示,在子模块的 config.rs 文件中,将 RustDesk 中继服务的 IP 和 Key 信息,修改为自己搭建的那个。
紧接着 IP 和 Key 下面的那些是 RustDesk 中继服务的端口信息,如果自己搭建时用的是默认端口,就不用修改。
6.3、推送信息修改到私有远程仓库

git add .
git commit -m "修改为自己的服务器IP和key"
git push origin main
6.4、确认信息修改的效果

如上图所示,在 RustDesk 子模块的私有远程仓库中,可以看到 config.rs 文件发生了修改。
7、更新主模块
7.1、进入主模块的目录

如上图所示,从本地仓库的子模块目录切换到主模块目录。
cd ../rustdesk/
7.2、同步子模块的更新

git submodule init
git submodule sync
git submodule update --remote
git add .
git commit -m "同步了子模块的更新"
git push
7.3、确认同步更新效果

如上图所示,在 RustDesk 主模块的私有远程仓库中,可以看到子模块的更新,同步到了主模块。
8、替换 API 服务的地址(可选)
提示:如果只是搭建了 RustDesk 中继服务,而没有搭建 RustDesk API 服务,这部分可以跳过。
8.1、修改主模块的 common.rs 文件

如上图所示,在主模块的 common.rs 文件中,将 RustDesk API 服务的 IP 和端口(端口一般使用默认)信息,修改为自己搭建的那个。
8.2、推送信息修改到私有远程仓库

git add .
git commit -m "修改api服务器地址"
git push origin master
8.3、确信息认修改的效果

如上图所示,在 RustDesk 主模块的私有远程仓库中,可以看到 common.rs 文件发生了修改。
9、使用 Github 编译 RustDesk 客户端
9.1、开启 Actions 权限

如上图所示,在 RustDesk 主模块的私有远程仓库的 Settings 中,开启 Actions 权限。
9.2、创建新的工作流

如上图所示,在 RustDesk 主模块的私有远程仓库的 Actions 中,新建一个工作流。

如上图所示,新建一个自己的工作流。

如上图所示,填入工作流的内容和名称(本例为 test.yml ),然后点击提交。
name: Flutter Nightly Build
on:
schedule:
# schedule build every night
- cron: "0 0 * * *"
workflow_dispatch:
jobs:
run-flutter-nightly-build:
uses: ./.github/workflows/flutter-build.yml
secrets: inherit
with:
upload-artifact: true
upload-tag: "nightly"
9.3、启动工作流进行编译

如上图所示,在 Actions 的 Flutter Nightly Build 中,启动刚创建的工作流。
注意:在 RustDesk 主模块的私有远程仓库中,启动工作流编译客户端时,需要将子模块的私有远程仓库权限设为公共的(public),否则会编译失败。
9.4、查看并下载自定义的客户端

如上图所示,进入 RustDesk 主模块的私有远程仓库的 Releases 页面中。

如上图所示,在 Releases 页面中,可以看到各个操作系统版本的自定义客户端安装包。
如果是 Windows 操作系统使用,下载 x86_64.exe 这个版本即可。
相关拓展
在个人云服务器上搭建 RustDesk API 和中继服务的操作步骤
本文参考
【1】【鼠标迁徙】【RustDesk通过API防止服务器被滥用 自动编译将服务器等信息内置客户端】【bilibili】【2025-04-11】
【2】【雨落凋殇】【使用GitHub Action 自动构建 RustDesk 客户端】【雨落凋殇的博客】【2025-03-03】
【3】【皮蛋熊】【编译Rustdesk内置Server、Key和连接密码,一键部署!】【蔚然小站】【2024-10-13】
本文来自博客园,作者:Javaer1995,转载请注明原文链接:https://www.cnblogs.com/Javaer1995/p/19545918



浙公网安备 33010602011771号