飘在云端

东西南北,海角天涯

· 备查 · · 48次浏览

rustdesk 开源版单文件客户端免输入设置中继服务器给客户开箱即用

环境
rustdesk v1.3.8 x64 开源版 OSS 的客户端
rustdesk server v1.1.14 开源 OSS 版服务端


rustdesk 订阅计划全是年付呀,最低的是 9.9 美元 *12
OSS 开源版是没有 Web 控制台和 API 功能
不过看了下有不少第三方实现的开源 rustdesk API 服务器

比如这个,实现了客户端所有 API 接口,并提供一个 Web-UI 用于管理数据
https://github.com/lantongxue/rustdesk-api-server-pro

还有这个基于 Python 的 Django 框架实现的第三方开源 API 服务器
https://github.com/kingmo888/rustdesk-api-server

我这里也参照 https://github.com/lantongxue/rustdesk-api-server-pro 项目部署了第三方实现的 rustdesk API 服务器

具体移步这里:https://www.0z.gs/memo/rustdesk-api-server.html

不过免费的开源版自建中继服务器使用已经很舒服了,向日葵免费版太卡了,但免费的还要什么自行车,一堆限制广告可以理解,看看隔壁的 ToDesk,吃相都难看成什么样了

实测 1920*1080 + 自动(H265编码),选择画质最好,动态画面时带宽占用为 300 - 380 Kib/s,偶尔峰值 580 Kib/s,平均下来大概为 350 Kib/s,这么看来这里的 3M/s 指的是兆比特每秒,即 3 Mbps = 375 KiB/s
我还担心文档的 3 M/s 指的是兆字节每秒,也就是 24 Mbps,我的中转服务器可没那么大的水管

如果画面没那么多信息需要动态编码压缩,实测下来大概办公场景 Excel 编辑修改操作时 100 - 150 KiB /s

官网文档原话

The hardware requirements are very low; the minimum configuration of a
basic cloud server is enough, and the CPU and memory requirements are
minimal. You can also use a Raspberry Pi or something similar.
Regarding the network size, if the TCP hole punching direct connection
fails, the relay traffic will be consumed. The traffic of a relay
connection is between 30 K/s and 3 M/s (1920x1080 screen) depending on
the resolution settings and screen update. If it is only for office
work demand, the traffic is around 100 K/s.

使用自建中继服务器时,想让别人使用 rustdesk ,你会遇到一个困扰的问题
使用自建的服务器所提供的远程连接 ID 并不能直接使用的,需要先行客户端配置中继服务器信息
协助别人远程,你总不可能要求别人下载 rustdesk 客户端之后,还要用户 balabala 的一顿设置才能远程连接吧
即使是一两个客户端量少,但每次都要设置,这也是很烦人的,有没有自动化/优雅的方式?

其实 rustdesk 官方文档有提供方法

如何让对方能开箱即用免设置中继服务器之类等繁琐配置,并且自动申请 UAC 提权,避免权限问题导致鼠标键盘异常无法控制

  • 免费开源版的方法:将中继服务器配置信息写入到 rustdesk 客户端的文件名
    限制:此方法仅在 Windows 平台有效
    优点:全程透明无感知,免配置,跟官方客户端一样开箱即用
    格式为

    rustdesk-host=<host-ip-or-name>,key=<public-key-string>.exe

    然后你还要兼容待远程的用户环境的 UAC ,也就是需要客户端自动申请 UAC 提权,要求用户授权
    在文件名末尾以 -qs 结尾即可(不含扩展名)
    最终形式为

    rustdesk-host=<host-ip-or-domain>,key=<public-key-string>,-qs.exe

    rustdesk-host=中继服务器域名或IP,key=中继服务器的服务端公钥,-qs.exe

    示例:

    rustdesk-host=114514.0z.gs,key=1919810JMasdfklbmg=,-qs.exe

    最后你把这个精心构造写入中继服务器配置信息的文件名客户端发给需要远程协助的用户即可
    让他运行即可,如何知道是否生效,点击客户端的关于界面,可以看到客户端加载的中继服务器信息,如果没有,说明格式错误/配置错误
    请输入图片描述


如果不是 Windows 平台,需要自行搭建 第三方开源 的Rustdesk API 服务端(官方的是付费),客户端登录账号会自动从 API 服务器获取中继服务器信息,无需手动输入

再或者是固定的批量化场景,中继服务器定死的情况下,可以克隆官方的仓库,硬编码中继服务器信息到源码里,然后自己重新编译生成安装包

另外,如果一方客户端在设置中配置了中继服务器,那么所有连接这个客户端的控制端客户端都得配置相同的中继服务器,不然是连不上的

  • 控制端免设置中继服务器配置信息直接连接已设置中继服务器的受控端:将中继服务器配置信息与远程设备的 ID 配合使用,格式如下

    <ID/r>@<中继服务地址>?key=<密钥>

    ID 后面跟的 /r 参数表示强制连接走中继服务器
    把这串写入了中继服务器配置信息的 ID 复制,直接粘贴到 rustdesk 控制端输入,即可直接免在控制端设置中继服务器直接使用
    示例:

    114514/r@1919810.example.com?key=114514zmfbosdnmosf=
    
评论 (0条)