自建远程协助软件rustdesk实现远程桌面远程控制软件

远程协助软件rustdesk 实现远程桌面 远程控制软件, 平替向日葵, ToDesk, 腾讯会议, Zoom, Mikogo等等

有什么用

远程协助, 远程桌面, 远程控制的需求, 再也不用被绑定手机号码然后慢慢推去收费的狭小通道了.

有了rustdesk工具(服务端和客户端), 可以实现多个设备间的互相控制(远程协作), 远程控制, 传输文件等等目前市面上的远程软件功能, 比如: 花生壳, Todesk, Tencent Meeting等等

怎么用

  1. 部署服务器

    如果您目前没有云服务器, 可以考虑:

    ​ 家宽申请出工网IP(适合折腾, 费时, 技术知识要有),
    ​ 或者购买云服务器(长久 稳定 省事的方案);

    ​ 实在都不想弄的话需要认识我, 我可以共享我的一部分服务器资源(资源有限, 且用且珍惜)

    ​ 从网上找找网友分享的rustdesk服务器端

  2. 编译客户端

    纯纯的仅需要计算机软件知识, 或者找人收费编译一下

    如果您不怕每次使用时的麻烦, 那就也可以使用rustdesk默认编译出来的可执行文件(每次需要远程那端配合输入服务器的一些信息…. 对于小白用户不友好, 步骤冗余)

如果您需要相关的协助, 请联系闲鱼下单:

image-20251110210430326

相关内容

部署rustdesk服务端

尝试自建服务器

docker-compose 自建ID和relay服务器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
services:
hbbs:
container_name: hbbs
image: rustdesk/rustdesk-server:latest
environment:
- ALWAYS_USE_RELAY=Y
command: hbbs
volumes:
- ./data:/root
network_mode: "host"

depends_on:
- hbbr
restart: unless-stopped

hbbr:
container_name: hbbr
image: rustdesk/rustdesk-server:latest
command: hbbr
volumes:
- ./data:/root
network_mode: "host"
restart: unless-stopped
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[src/common.rs:147] Private/public key written to id_ed25519/id_ed25519.pub
hbbs | [2025-12-29 13:32:49.446375 +00:00] INFO [src/rendezvous_server.rs:1205] Key: huHpigOnBqrvwEH3eBFKULUWgiywtacmBpyJpupxyTE=



carlzeng@MacBookPro ~ % nc -vz 192.168.6.117 21114
nc: connectx to 192.168.6.117 port 21114 (tcp) failed: Connection refused
carlzeng@MacBookPro ~ % nc -vz 192.168.6.117 21115
Connection to 192.168.6.117 port 21115 [tcp/*] succeeded!
carlzeng@MacBookPro ~ % nc -vz 192.168.6.117 21116
Connection to 192.168.6.117 port 21116 [tcp/*] succeeded!
carlzeng@MacBookPro ~ % nc -vz 192.168.6.117 21117
Connection to 192.168.6.117 port 21117 [tcp/*] succeeded!
carlzeng@MacBookPro ~ % nc -vz 192.168.6.117 21118
Connection to 192.168.6.117 port 21118 [tcp/*] succeeded!
carlzeng@MacBookPro ~ % nc -vz 192.168.6.117 21119
Connection to 192.168.6.117 port 21119 [tcp/*] succeeded!

TODO: 故障: 转发后, 无法连接到本地服务器的21116 和 21117.

解决过程:

​ 重启以后, 依旧失效, 无法连接到117明明是开放着的21117; 其他端口设置了转发就有成功的… 为何就是改的这几个端口死活就是无法链接呢?

1
2
3
4
5
6
7
8
9
10
11
carlzeng@MacBookPro ~ % nc -vz 111.193.104.114 11117                                                             
nc: connectx to 111.193.104.114 port 11117 (tcp) failed: Connection refused
carlzeng@MacBookPro ~ % nc -vz 111.193.104.114 3
Connection to 111.193.104.114 port 3 [tcp/compressnet] succeeded!
carlzeng@MacBookPro ~ % nc -vz 111.193.104.114 6
Connection to 111.193.104.114 port 6 [tcp/*] succeeded!

carlzeng@MacBookPro ~ % nc -vz 111.193.104.114 1117
Connection to 111.193.104.114 port 1117 [tcp/ardus-mtrns] succeeded!
carlzeng@MacBookPro ~ % nc -vz 111.193.104.114 1116
Connection to 111.193.104.114 port 1116 [tcp/ardus-cntl] succeeded!

原来又是运营商搞的鬼; 当路由器端完成了转发后, 其实流量数据包是在运营商那端被丢弃的, 导致(tcp) failed: Connection refused.

切换到小的端口值号时候, 可以正常连接了服务器节点.

安装安卓默认版本, 统一网络下连接顺利

故障: 移动网络中的安卓, 无法连接到id服务器(切换端口到116, 117以后可以连接到RustDesk网络, 就绪. 偶尔断开)

当手机的网络属于‘中国移动’的网络时, 无法从MAC连接进行远程协助.(即便是状态显示就绪; 很快又跳成未就绪, 请检查网络连接)

本小结有参考并阅读了:

RustDesk 自建服务器部署和使用教程

docker-compose 部署restdesk服务器

下一步:

How to modify the client default server address in the code
自己搭建服务器,但是每次发给别人都需要去改服务器地址,修改代码的那个位置,可以默认服务器ip,以后发给别人都可以不用添加服务器地址?
https://github.com/rustdesk/rustdesk/discussions/2236
Sciter.JS - HTML/CSS/JS embeddable engine.

编译rustdesk服务端 [可选] [进阶]

如果您需要有特殊需求的rustdesk服务端, 请考虑自行修改源码后编译出来, 然后在重新部署一个服务器端

待进一步实践需求

编译rustdesk客户端

通过上面的docker部署rustdesk服务端, 让rustdesk的运行有了底层的服务基础; 下一步要处理的就是客户端, 客户端运行在各个系统平台上, 比如: 苹果电脑, Windows电脑, Android手机, 苹果手机, 平板电脑(如何各种安卓的平板), 安卓电视, 安卓的机顶盒等等

客户端其主要几类的操作系统有: Linux, Mac, Windows, Android, Debian. 基本涵盖了主要几类大众常用的软硬件平台.

为何需要自行编译客户端?

由于rustdesk太好用, 导致有一些非法分子来利用rustdesk进行诱导性的‘远程协助’; 直接下载rustdesk官方的客户端(默认连接特定的官方服务器)已经无法使用(因为官方的服务器地址出于某些非技术性原因被ban了). 就需要通过配置rustdesk的ID服务器等信息, 让客户端都去连接自建的服务器(也就是上文中详细讲述的docker自建rustdeskID和relay服务器)

如何自行编译rustdesk客户端?

理论步骤: 从源头的rustdesk 以及其嵌套的子项目 libs/hbb_cmmon. clone, 并修改代码中的ID服务器地址和Key信息; 如果您的ISP封锁了您公网IP的默认端口11116, 11117, 11118, 11119的话, 您可以修改切换一些其他的端口.

其他的修改, 可以根据个人的需求来展开实现;

修改的步骤如下:

  1. 根据您自建的rustdesk服务器具体情况, 修改配置文件/libs/hbb_common/src/config/rs的103行- 109行.

image-20260108085844046

  1. git comment 和 push 把修改的最新代码提交到github进行编译

    当然也可以通过本地计算机进行编译, 过程比较繁琐; 不是资深开发头脑思维的, 不建议采用该本机编译方案

  2. 完成上面2步骤以后; 就是设置github的action来进行 云编译; 让github在远程服务器完成最新代码的编译工作, 最终生成各个平台的可执行文件; 有了rustdesk客户端后就可以发给远程协助的对方, 进行远程协助操作.

  3. 设置当前Github项目Settings 》 Actions 〉 Genernal 》 Actions permissions

    1. 选择Allow all actions and reusable workflows
  4. Settings 》 Actions 〉 Genernal 》Workflow permissions

    1. 选择Read and write permissions
    2. 勾选Allow GitHub Actions to create and approve pull requests
  5. 分别都保存

  6. 开启当前Github项目Actions

    1. Enable Workflows
  7. 手动运行 Flutter Tag Build

image-20260108094014865

使用Flutter Tag Build的好处是, 运行1个小时多后; 可以在项目的Releases, 下载到Tag的 Assets可以找到安卓手机的APK安装文件, windows的exe运行文件, Mac苹果电脑的dmg安装文件, Debian的deb安装包.

其他修改及编译

其他的需求, 比如: 如何简化每次输入密码的过程? 如何让客户端(老人用手机或机顶盒等)傻瓜式完成确认? 即可快速获得远程协助的能力.

如果您需要相关的协助, 请联系闲鱼下单:

image-20251110210430326

灵感来源

远程协助 国内用ToDesk 国外用RustDesk

个性化需求沟通 扫客服加V加群: