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

远程协助, 远程控制手机, 电脑等各平台设备

有什么用

在寻找远程协助客户, 家人, 朋友的手机或电脑时,寻找最佳体验的解决办法

比如:想现场讲解如何操作,演示操作过程,代替朋友协助操作软件系统画面

下一步计划:

怎么用

国内用ToDesk 国外用RustDesk,不是没有道理的,ToDesk国内有中转服务器架设,这样使用的体验上就比RustDesk(开源)的要好;除非我们自己架设RustDesk服务器节点,可是即便这么做了,还得需要编译RustDesk的手机和电脑端APP,这样才能避免受协助端无需去操作界面填写服务器地址端口等等信息(因为需要协助的人,如果很懂IT,那ta很可能性不需要协助了)

完美的协助流程:

  1. 发送被控端(受协助对象)APP给需要协助的家人朋友或客户,让对方安装到手机或者电脑上(不如什么平台的电脑:Windows,MAC,Ubuntu等等)
  2. 沟通获取被控端提供,远程协助的ID
  3. 在控制端,输入远程协助ID,点击连接
    1. 有时,还需要被控端接受远程协助的确认点击。

相关内容

实现方法

手机的远程控制APP,实现远程操作安卓手机,可能需要越狱?

1. TeamViewer

https://www.youtube.com/watch?v=UXRvw49jH3s

2. 锐连 随时随地远程协助 https://remobax.top/

忘记以前那个什么app了,手机内存找一找  
    如何使用AirMirror App实现手机远程控制手机? AirDroid
    https://github.com/bk138/droidVNC-NG
    https://f-droid.org/packages/net.christianbeier.droidvnc_ng/

3. ToDesk 或者 选择anydesk(同样的原理还免费,但是大陆不开梯子会很卡)

ToDesk,远程客户请使用官方的精简版,

​ 下载链接1: https://dl.todesk.com/windows/ToDesk_Lite.exe 或者 https://file.carlzeng.com:3/d/SWITCH%E4%BB%BB%E5%A4%A9%E5%A0%82/ToDesk_Lite.exe

4. rustdesk

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.

http://aizuda.com/article/1088975
docker-compose 部署restdesk服务器

4.1 Docker build

#8 83.01 Environment variable VCPKG_FORCE_SYSTEM_BINARIES must be set on arm, s390x, ppc64le and riscv platforms.

解决办法:拆分成三个独立的命令

1
2
3
RUN git clone --branch 2023.04.15 --depth=1 https://github.com/microsoft/vcpkg --single-branch
RUN /vcpkg/bootstrap-vcpkg.sh -disableMetrics
RUN /vcpkg/vcpkg --disable-metrics install libvpx libyuv opus aom
方向性错误,编译出windows,mac的客户端没有意义;我需要编译出APK

4.2 rustdesk/flutter/

https://github.com/rustdesk/rustdesk/tree/master/flutter
85 mins remaining

测试了一下国内直连默认服务器使用,安卓端的按键和确认动作太多,延迟太大了
难怪方案:国内用todesk,国外用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 自建服务器部署和使用教程

5. parsec

no.

6. frp方案

厉害了 (从rustdesk无人值守,入口找到的个人站)
https://zsxwz.com/
https://shop.zsxwz.shop

如何配置域名访问?反代?

7. 手机上VNC服务端可从F-Droid下载droidvnc-ng开启服务

https://www.bilibili.com/read/cv21492779/
被控端B: frpc穿透后,用droidvnc-ng开启vnc服务

这个方案的尴尬之处在于:随着Android版本升级,安全性的提高,导致开启vnc服务需要跨越的系统级障碍增加。

于是各路APP都在想办法在非root的情况下开启远程桌面服务:VNC server app for Android that does not require root privileges.

测试中:https://github.com/yrom/ScreenRecorder

Implement screen capture without root on Android 5.0+ by using MediaProjectionManager, VirtualDisplay, AudioRecord, MediaCodec and MediaMuxer APIs

8. 用scrcpy连接Android调试功能实现远程控制

详见:安卓手机投屏至电脑, 电脑显示和控制安卓手机, 手机电脑同屏软件Scrcpy-CarlZeng

9. hsslive.cn 测试

切换服务到: https://desk.hsslive.cn/#/ (作者: https://github.com/galaxy-s10)

免费流畅的远程体验基于WebRTC+Flutter+Vue3+Nodejs

实现电脑对电脑, 电脑对手机, 甚至可以手机对电脑的远程控制

(类似于todesk, 或 向日葵功能); 下载: https://desk.hsslive.cn/#/release

免费方案,是作者推荐的方案:BilldDesk Pro + 自建中继服务器。即直接使用现有的 BilldDesk Pro,自己再额外部署一个中继服务器,然后在 BilldDesk Pro 里面使用自建的中继服务器。这样优点是不使用官方的共享服务器,享受独立的中继服务器,远程控制更流畅。

测试后放弃该方案, 原因:

  1. 下载客户端的链接是各种网盘, (很不正式, github上的版本太久, 下载下来又提示强制更新)
  2. 客户端也要注册用户, 这个步骤对于‘懒人’用户不友好, 不主控的话, 别强制注册, 自动一下呢?
  3. 界面用的词语不恰当: 主控, 被控; 不适合我的应用场景; 给客户不安全感

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