笔记rustdesk远程工具客户但编程利用Github Actions 实现自动构建内置服务器和key和API服务的Rustdesk客户端教程
雨落凋殇利用Github Actions 实现自动构建内置服务器和key和API服务的Rustdesk客户端教程
RustDesk 是一个开源的远程桌面应用,允许用户自建服务器,以替代 TeamViewer 等远程控制软件。为了方便自建服务的用户快速使用Rustdesk,构建内置自己服务器和key的RustDesk 客户端便成为了广大互联网爱好者的需求。
默认情况下,RustDesk 依赖 hbb_common 作为其基础库,并默认连接到官方服务器。如果你希望使用自己的服务器,则需要修改 hbb_common 代码并让 rustdesk 指向你修改后的 hbb_common 仓库。
本教程将介绍如何利用Github Actions 实现自动构建内置你服务器和key的Rustdesk客户端。
1. 准备工作
在开始之前,请确保你已经安装了 Git,并且拥有一个 GitHub 账户。建议你对 Git 的基本使用有一定了解,以便顺利完成后续操作。
2. Fork Rustdesk仓库
- rustdesk/hbb_common
- rustdesk/rustdesk
2.1 拉取 Fork 后的代码
请注意,替换仓库地址为你fork后的仓库地址,而不是直接复制我下面的命令:
1 2 3 4 5 6
|
git clone https://github.com/用户名/hbb_common.git git clone https://github.com/用户名/rustdesk.git
|

3. 修改 hbb_common代码
打开 hbb_common 仓库下的 src/config.rs文件,修改 101-102 行 的默认服务器和密钥为你自己的服务器和密钥。

3.1 推送修改后的代码
1 2 3 4 5 6
| git add.
git commit -m "修改默认的服务器和 key"
git push
|
3.2 查看最新提交的 commit ID
我这里提交后的commit id是b8d80ca,可用于后续验证rustdesk服务器和key是否修改成功。

4. 修改 rustdesk 仓库代码
我们切换到克隆下来的rustdesk代码目录下,按照下面的方式修改子模块地址并更新。
4.1 更新 .gitmodules
打开并编辑 .gitmodules 文件,将 url 替换为你Fork后的 hbb_common 仓库地址。
比如fork后的仓库地址是https://github.com/test/hbb_common 则将 https://github.com/rustdesk/hbb_common地址换为前面这个地址即可,记住是hbb_common的地址,而不是rustdesk仓库的地址。

4.2 更新子模块
将上面修改好的代码保存,执行下面的命令更新子模块到最新的commit id:
1 2 3
| git submodule init git submodule sync git submodule update --remote
|

4.3 提交并推送代码
1 2 3
| git add. git commit -m "修改子模块仓库地址" git push
|

4.4 确认 Commit ID 更新
代码推送完毕后,进入你Fork 后的 rustdesk 仓库的 libs 目录下,查看 hbb_common 后面的 commit id,确保它是3.2提到的b8d80ca(这个值每个人的是不同的),否则请回到上面的步骤重新检查是否遗漏了了某个操作。


打开 rustdesk/src/common.rs
文件,在第 947 行左右找到 API 接口地址的配置项,将其修改为你自己的 API 接口地址。修改完成后,按照以下步骤提交修改:
1 2 3
| git add . git commit -m "修改 API 接口地址" git push
|
另外API如果使用SSL协议反代,以下是配置信息:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
| server { listen 80; listen 443 ssl http2; listen [::]:443 ssl http2; listen [::]:80;
server_name xx.com; index index.php index.html index.htm default.php default.htm default.html;
access_log /www/sites/xx.com/log/access.log main; error_log /www/sites/xx.com/log/error.log;
root /usr/share/nginx/html/stop;
ssl_certificate /www/sites/xx.com/ssl/fullchain.pem; ssl_certificate_key /www/sites/xx.com/ssl/privkey.pem;
ssl_protocols TLSv1.3 TLSv1.2 TLSv1.1 TLSv1; ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:!aNULL:!eNULL:!EXPORT:!DSS:!DES:!RC4:!3DES:!MD5:!PSK:!KRB5:!SRP:!CAMELLIA:!SEED; ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m;
add_header Strict-Transport-Security "max-age=31536000";
location ^~ /.well-known/acme-challenge { allow all; root /usr/share/nginx/html; }
location /ws/id { proxy_pass http://127.0.0.1:21118; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; }
location /ws/relay { proxy_pass http://127.0.0.1:21119; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; }
include /www/sites/xx.com/proxy/*.conf;
error_page 497 https://$host$request_uri; proxy_set_header X-Forwarded-Proto https;
include /www/sites/xx.com/proxy/*.conf; }
server { listen 80; server_name xx.xx.com;
if ($host = xx.xx.com) { return 301 https://$host$request_uri; }
return 404; }
|
5. 触发 GitHub Action 构建
5.1 创建 Tag
在本地 rustdesk 仓库中创建一个新 tag,例如 1.3.9,请使用 固定格式 (如 1.3.9 或 v1.3.9),以便于自动匹配构建规则。
1
| git tag -a 1.3.9 -m "修改内置服务器和 key"
|

5.2 触发 GitHub Actions 构建
在 rustdesk 仓库中,进入 Actions 页面,点击下面图中的按钮启用自动构建。启用后回到本地rustdesk代码中使用下面的命令将tag推送到Github后将自动开始构建。

5.3 下载构建好的客户端
Tag推送完毕后会出现下面的构建进度。

等待 Action 执行完成后(时间比较长,一个半小时左右才能全部构建完成),进入 Releases 页面,即可下载构建好的客户端并使用。

