自部署rustdesk远程软件并将配置打包进软件
前言
目前市面上的远程软件有很多种,比如 todesk、向日葵等。这些软件不付费的话用起来挺差的,即便你付费了,你也只能连接中国大陆的机器,海外的还得单独付费,这又是一笔费用。
现在各大厂商如阿里云、腾讯云等都可以用很优惠的价格买到一个服务器,如果是只链接中国大陆的机器,可以买大陆的机子,如果有海外机器,则可以买香港的机器。
前提
- 懂得基本的 linux 命令
- 了解服务器配置相关知识
- 拥有一台服务器
服务器要求,官网上是这样写的:
硬件要求非常低;基本云服务器的最低配置就足够了,CPU和内存要求极低。您也可以使用树莓派或类似设备。关于网络规模,如果TCP打洞直连失败,将消耗中继流量。中继连接的流量根据分辨率设置和屏幕更新在30 K/s到3 M/s(1920x1080屏幕)之间。如果仅用于办公需求,流量约为100 K/s。
延迟没有要求,rustdesk 主要是进行 p2p 连接,如果这个失败才会考虑用你的中继服务器。即便用中继服务器,延迟 150ms 以内简单使用的问题都不大。
下面我的讲解就默认你这些技术都会并且拥有一台服务器。
介绍
rustDesk,官网:
是一个开源的远程工具软件,自建指南在这:
看得懂的人可以直接按照这个指南来。也可以跟着我下面的操作一步步来。
功能特性如下:
- 支持 Windows、macOS、Linux、iOS、Android、Web。
- 支持 VP8 / VP9 / AV1 软件编解码器,以及 H264 / H265 硬件编解码器。
- 拥有您的数据,轻松在您的基础设施上建立自托管解决方案。
- 基于 NaCl 的端到端加密 P2P 连接。
- Windows 无需管理员权限或安装,可按需在本地或远程提升权限。
服务器部署
1panel 安装
首先安装 1Panel:
1Panel 官网 - 现代化、开源的 Linux 服务器运维管理面板
安装这个是为了方便管理,也为了照顾那些不是特别精通 linux 的人和懒人(其实我自己就是个懒人)。
这个的安装就简单很多了,直接复制下面给的运行脚本到你的服务器:
bash -c "$(curl -sSL https://resource.fit2cloud.com/1panel/package/v2/quick_start.sh)"要以 root 用户身份运行,普通用户无法成功安装。
按照他的选项一步步安装就行。
最后会有一个地址、密码、用户名的大汇总,记得保存下来,不然后面进不去了。

然后就是去服务器的管理的入方向上开启对应端口,我这里是 12345 端口

然后进入刚刚 1panel 显示的网站登录进入 1panel
rustdesk 中继服务器安装
在 1panel 的应用商店中搜索 rustDesk

点击安装,IP 地址或域名改为我们的服务器 IP,其他的不要动

一定要勾选下面的端口允许外部访问

然后就点击安装就行。
接下来就是去服务器管理放行端口了,也是入方向的
官方文档中写到需要放行这两种端口

第一步,先放行 tcp 的端口

接下来是放行 udp 的

rustDesk 客户端的配置
来到 1panel 这里点击日志

往上滑可以看到有一个 key,这个 key 非常重要,一定要记住

然后我们打开 rustDesk,点击这里进行配置

然后在网络这里选择 ID/中继服务器

按照如下方式填写,key 就是刚刚日志里看的。其他都是你的服务器公网 ip,API 服务器要加上 https://

看到底部的 就绪 就完成了

这样你的客户端就算是配置完成了
自定义打包被控端的程序
这样做以后就是直接把包发给别人,那就可以实现 0 配置直接用自己的中继服务器控制他人了。你也可以不这样做,让他们自己按照上面步骤修改中继服务器即可。
windows
步骤一:下载软件并重命名
先去官方下载地址下载 windows 版本的安装包,比如 rustdesk-1.2.x-x86_64.exe。
将下载好的文件名重命名为如下格式
rustdesk-host=<你的服务器IP>,key=<你的公钥>,-qs.exehost 就是你的服务器 ip,key 就是从日志里复制的那个。
例如:**rustdesk-host=123.45.67.89,key=aBc123XyZ456=,-qs.exe**
这样你直接把包发给别人他们就可以直接双击打开,且是连上了你自己的中继服务器了。
步骤 2: 安装 Inno Setup
不过这样用起来就很麻烦,而且还暴露自己的 ip 和 key。所以下面用 Inno Setup 打包这个程序。
先去官网下载 inno setup:
直接安装就行。
步骤 3: 编写脚本
在电脑上新建一个记事本文档,复制粘贴以下代码,只需要修改顶部参数即可:
; ==================== 1. 在这里统一修改你的参数 ====================
#define ServerIP "123.45.67.89"
#define ServerKey "abc123456="
#define AppTitle "远程协助工具"
; 下面是自动拼装出来的内部文件名,不需要手动改
#define TargetExeName "rustdesk-host=" + ServerIP + ",key=" + ServerKey + ",-qs.exe"
[Setup]
AppName={#AppTitle}
AppVersion=1.0
DefaultDirName={tmp}\RD_TempHelper
DisableDirPage=yes
DisableProgramGroupPage=yes
Uninstallable=no
OutputBaseFilename={#AppTitle}
PrivilegesRequired=lowest
[Files]
; Inno Setup 会默认在 .iss 脚本所在的当前文件夹里去找这个文件
Source: "{#TargetExeName}"; DestDir: "{tmp}"; Flags: ignoreversion
[Code]
// 在退出时自动强删清理
procedure DeinitializeSetup();
var
ResultCode: Integer;
ExePath: String;
begin
ExePath := ExpandConstant('{tmp}\{#TargetExeName}');
// 1. 启动并等待客户关闭窗口
Exec(ExePath, '', '', SW_SHOW, ewWaitUntilTerminated, ResultCode);
// 2. 客户关闭后自动擦除解压出来的文件
DeleteFile(ExePath);
DelTree(ExpandConstant('{tmp}\RD_TempHelper'), True, True, True);
end;保存文件,将文件后缀从 .txt 改为 .iss(比如叫 build.iss)
步骤 4: 编译
- 然后将安装包和这个构建文件放在同一个文件夹
- 双击用 Inno Setup 打开这个
.iss文件。 - 点击顶部工具栏的 Compile(编译) 按钮(或者按快捷键
Ctrl + F9)。 - 几秒钟后,在你的脚本所在目录下就会多出一个
**Output/远程协助工具.exe**。

通过这个脚本构建的应用,在关闭后不会给电脑留下残留。下次使用还得点击构建好的 exe 才行。
这样你只需要分发这个构建好的 exe,然后他们就能被你控制了,不用额外改任何配置。
linux
makeself 是 Linux 下最经典的自解压打包工具(比如 NVIDIA 的 Linux 显卡驱动 .run 文件就是用它做出来的)。
步骤 1:安装 makeself
在你的 Linux 机器上运行安装命令:
- Ubuntu/Debian:
sudo apt install makeself - CentOS/RHEL:
sudo yum install makeself
步骤 2:准备项目文件夹
创建一个空文件夹 rd_build,把 Linux 版的 RustDesk 单文件程序放进去:
mkdir rd_build
cd rd_build
# 下载官方 Linux AppImage 版(免安装单文件)或应用可执行文件,自己更换地址
wget https://github.com/rustdesk/rustdesk/releases/download/1.4.9/rustdesk-1.4.9-x86_64.AppImage -O rustdesk.AppImage
chmod +x rustdesk.AppImage步骤 3:编写启动与清理脚本 (start.sh)
在 rd_build 文件夹内部新建一个名为 start.sh 的脚本:
vim start.sh写入以下内容(记得把 IP 和 Key 替换成你自己的):
#!/bin/bash
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
# 运行并等待退出
"$DIR/rustdesk.AppImage" --host 你的IP --key 你的公钥 --qs
# 退出后延迟 1 秒在后台清理临时目录
(sleep 1 && rm -rf "$DIR") &赋予脚本执行权限:
chmod +x start.sh步骤 4:一键打成单独的 .run 交付包
退回到 rd_build 的上一级目录,执行打包命令:
makeself rd_build 远程协助工具.run "远程协助工具" ./start.sh参数解释:
rd_build:要打包的文件夹。远程协助工具.run:最终生成给客户用的单文件名称。./start.sh:解压后自动调用的启动入口脚本。
客户拿到后如何使用?
Linux 因为安全机制限制,任何可执行文件运行前都需要“执行权限”。
chmod +x 远程协助工具.run && ./远程协助工具.run运行后界面直接弹出来,并且客户一旦关闭窗口,后台的解压目录立刻随之清除
