最新版RustDesk 自编译客户端|GitHub 一键构建,内置私有服务端地址
为什么要自己编译客户端?
RustDesk 自建服务器后,官方客户端默认连接官方服务器,每次都要手动填写 ID/中继服务器地址。团队使用太麻烦,小白用户容易填错。
今天把完整流程整理出来,照着做就行。
一、Fork 两个仓库
需要克隆两个项目:
# rustdesk 客户端https://github.com/rustdesk/rustdesk # hbb_common 公共基础库https://github.com/rustdesk/hbb_common



Fork 完成后,你的账号下会有两个仓库。
二、修改服务器配置
核心步骤:把自建服务器地址和公钥写进源码。
1. 进入 hbb_common 仓库
切换到main 分支,找到文件 src/config.rs,修改两处常量:
// 修改前pub const RENDEZVOUS_SERVERS: &[&str] = &[”rs-ny.rustdesk.com”]; pub const RS_PUB_KEY: &str = ”OeVuKk5nlHiXp+APNn0Y3pC1Iwpwn44JGqrQCsWqmBw=”; // 修改后(替换成你自己的) pub const RENDEZVOUS_SERVERS: &[&str] = &[”你的服务器地址”]; pub const RS_PUB_KEY: &str = ”你的公钥”;


重要:新版本已不支持环境变量注入,必须直接改源码常量。
2. 提交更改
修改完成后,提交到 hbb_common 的 main 分支。

三、修改 rustdesk 主仓库
1. 切换到 master 分支
进入你 Fork 的 rustdesk 仓库,切换到 master 分支。

2. 修改 submodule 指向
编辑 .gitmodules 文件,把 hbb_common 的 URL 改成你自己的:
[submodule ”libs/hbb_common”] path = libs/hbb_common url = https://github.com/你的用户名/hbb_common

3. 添加 Workflow 权限
编辑 .github/workflows/flutter-tag.yml,在文件添加:
permissions: contents: write actions: write


四、配置 GitHub Actions 权限
进入 rustdesk 仓库:Settings → Actions → General
1.找到Workflow permissions,选择:
2.Read and write permissions

五、更新 Submodule 指针(关键!)
这是最容易出错的步骤。rustdesk 主仓库记录的 submodule 提交指针还停在官方旧版本,必须更新到你的新提交。
在本地执行以下命令:
# 1. 浅克隆主仓库(只拉最新1个提交,速度快) git clone --depth 1 # 2. 进入项目目录 cd rustdesk # 3. 初始化子模块g it submodule update --init libs/hbb_common # 4. 进入子模块目录 cd libs/hbb_common # 5. 拉取远端 main 分支git fetch origin main # 6. 强制切换到 main 分支(关键步骤)git checkout main # 7. 返回主仓库根目录 cd ../.. # 8. 将子模块变更加入暂存区 git add libs/hbb_common # 9. 提交更改 备注更新子模块git commit -m ”Update hbb_common submodule to custom build” # 10. 推送到 GitHubgit push origin refs/heads/master:refs/heads/maste

说明:子模块默认锁定某个 commit 哈希,让它指向你修改后的最新代码。
六、触发自动编译
回到 GitHub,进入 rustdesk 仓库的Actions页面。
找到flutter-tag Build ,点击Run workflow。

点击绿色Run workflow按钮,等待 30-60 分钟自动编译。

编译过程中可以点击记录进入详情页查看实时状态。


七、下载编译好的客户端
编译完成后,进入仓库的Releases页面,可以看到各个平台的客户端:
Windows 安装包 Linux AppImage / deb / rpm Android APK....



八、验证客户端
下载安装后打开客户端:
首页状态直接显示 就绪 设置里的 ID/中继服务器配置为 空
说明服务端信息已经编译进客户端,无需手动配置。


总结
通过 GitHub Actions 编译 RustDesk 客户端,核心就是三步:
Fork 仓库并修改服务器配置 更新 submodule 指针 触发 Actions 自动编译
如果觉得有用,欢迎点赞、收藏、关注!有问题欢迎留言交流。
感谢 RustDesk 开源项目提供的优秀远程桌面方案!
感谢 "勿悔"朋友对本文的支持~
声明:本文仅供技术交流学习使用,请勿用于非法用途。
-
支付宝 -
微信


