惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Security Archives - TechRepublic
Security Archives - TechRepublic
Project Zero
Project Zero
K
Kaspersky official blog
G
Google Developers Blog
T
Threat Research - Cisco Blogs
T
The Blog of Author Tim Ferriss
Cyberwarzone
Cyberwarzone
Y
Y Combinator Blog
Recorded Future
Recorded Future
Blog — PlanetScale
Blog — PlanetScale
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Cisco Talos Blog
Cisco Talos Blog
Latest news
Latest news
Microsoft Security Blog
Microsoft Security Blog
H
Help Net Security
S
Schneier on Security
P
Palo Alto Networks Blog
H
Hacker News: Front Page
N
News and Events Feed by Topic
N
Netflix TechBlog - Medium
博客园 - Franky
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
SecWiki News
SecWiki News
Cloudbric
Cloudbric
TaoSecurity Blog
TaoSecurity Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
The Hacker News
The Hacker News
C
Check Point Blog
L
LangChain Blog
腾讯CDC
小众软件
小众软件
T
Tenable Blog
Google DeepMind News
Google DeepMind News
GbyAI
GbyAI
L
LINUX DO - 最新话题
A
About on SuperTechFans
Google Online Security Blog
Google Online Security Blog
C
Cisco Blogs
Recent Announcements
Recent Announcements
Hacker News: Ask HN
Hacker News: Ask HN
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Vercel News
Vercel News
雷峰网
雷峰网
美团技术团队
D
DataBreaches.Net
Martin Fowler
Martin Fowler
Help Net Security
Help Net Security
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
F
Full Disclosure
博客园_首页

龙笑天下

Dragon 主题:带用户中心和商城系统的博客 CMS 高级 WordPress 主题 V6.2.0 Dragon Lite 主题:WordPress 博客自媒体资讯主题 V1.4.0 一文带您了解怎么优化WP-Cron计划任务,提升WordPress性能,减少服务器负担 WordPress如何更换网页字体?轻松更换主题的字体为任意您喜欢的自定义字体 使用DragonAI给你的博客文章自动生成AI摘要,支持Wordpress和Typecho 程响 - 可能 便宜的半年期200天HTTPS单域名/公网IP/通配符SSL证书 WordPress 6.7主题和插件语言翻译加载失效问题解决方法:避免过早调用load_theme_textdomain()和load_plugin_textdomain() 新手从零开始学会使用宝塔面板搭建一个属于自己的Wordpress网站 Debian 12修复OpenSSH远程代码执行高危漏洞:CVE-2024-6387,附Debian系统软件源国内镜像源 谷歌浏览器Google Chrome 149.0.7827.103正式稳定版、测试版及开发版本大全 火狐浏览器Mozilla Firefox 151.0.4正式版、ESR长期版及其它版本大全 不显示Wordpress评论列表里超过N天的评论者的网站链接 Linux Shell脚本实时检测Nginx状态 挂掉则立即自动重启 Blossom,一个支持私有部署的云端存储开源日志笔记软件
使用开源程序RustDesk自建远程桌面控制连接服务,支持Win/Mac/Android/iOS全平台
龙笑天 · 2025-06-26 · via 龙笑天下

使用开源程序 RustDesk 自建远程桌面控制连接服务,支持 Win/Mac/Android/iOS 全平台

说到远程桌面控制软件,大家应该都很熟悉,常见流行的比如:Teamviewer、向日葵、Todesk、Anydesk、网易 UU 远程等等。一路用来,龙笑天力推且用的最久的是 Todesk,它算是免费里面分辨率高也最流畅好用的,但从今年开始它就开始对免费版进行了一次次的修改限制,开始变得让人远离了。不过这也没啥好说的,毕竟我们免费用了这么多年,别人也是要生存发展的。

龙笑天开始找寻其他用来替换的远程控制软件,找到了 Github Star 高达 92k 可以自托管的开源远程桌面控制程序:Rustdesk。它可以接纳管理自己的所有设备,不限制设备数带宽连接数,支持全平台,包括 Win、MacOS、Android、iOS、Linux 等。

今天,龙笑天以闲置的国内服务器及 Docker 容器为例,详细介绍一下如何使用开源程序 RustDesk 搭建一个自己的远程桌面控制连接服务,以及 RustDesk 软件客户端的使用方法技巧。

1.准备工作

1.1 购买一个公网服务器

因为是自建,那么肯定要购买准备好一个公网服务器了。如果你的设备或客户都是国内的话,那就用一个国内公网服务器最好,带宽在 3M 或以上体验最佳。推荐服务器系统为 Linux 的 Debian 12 系统。

现在 VPS 云服务器也都很便宜,通常 1 年在 100-200 元左右。在这里推荐腾讯云阿里云服务器,性价比最优。下面这 2 篇文章里会有一些便宜的活动链接,可以点击进去下单购买:

特价腾讯云 CVM 云服务器推荐 3 折起 低至 99 元/年-BG

特价腾讯云 CVM 云服务器推荐 3 折起 低至 99 元/年

  • 库存:825
  • 人气:1.48k

特价阿里云 ECS 云服务器推荐 3 年付仅 3 折 99 元/年-BG

特价阿里云 ECS 云服务器推荐 3 年付仅 3 折 99 元/年

  • 库存:812
  • 人气:1.53k

1.2 开放好 RustDesk 相关端口

去服务器服务商的控制台以及宝塔面板或其他面板里,找到防火墙设置,开放好下述 RustDesk 所需要的端口:

TCP:21115,21116,21117

UDP:21116

RustDesk 端口介绍

1.hbbs 使用到的端口:

  • 21114 (TCP): 用于网页控制台,仅在 Pro 版本中可用。
  • 21115 (TCP): 用于 NAT 类型测试。
  • 21116 (TCP/UDP): 请注意 21116 应该同时为 TCP 和 UDP 启用。 21116/UDP 用于 ID 注册和心跳服务。21116/TCP 用于 TCP 打洞和连接服务。
  • 21118 (TCP): 用于支持网页客户端。

2.hbbr 使用到的端口:

  • 21117 (TCP): 用于中继服务。
  • 21119 (TCP): 用于支持网页客户端。

因为我们一般不需要网页客户端支持,所以可以禁用这几个端口:21114、21118、21119。

1.3 安装好 Docker 服务

如果你的服务器已经安装好 docker 以及 docker-compose 服务,那就跳过此步。如果没有的话,就务必安装一下。服务器使用了宝塔面板的话,那就直接去宝塔面板的菜单“Docker”里安装好 docker 服务即可;其他的话,可以 SSH 里复制粘贴运行下面的命令来安装 docker 服务。

# 安装 Docker 使用阿里云源
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
systemctl enable --now docker

# 安装 docker-compose
curl -L https://github.com/docker/compose/releases/download/v2.27.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

# 验证 docker 是否安装成功
docker -v
docker-compose -v

# 如失效,请留言或自行百度~

2.1 拉取 Rustdesk 镜像到本地

运行下面的命令来拉取镜像到本地服务器:

docker image pull rustdesk/rustdesk-server

2.2 创建 Rustdesk 容器服务

将下面命令里-r参数的“server_ip”改为你自己的服务器的 IP!然后再运行命令来来创建hbbshbbr这 2 个 Rustdesk 容器:

# 创建hbbs容器
docker run --name hbbs -p 21115:21115 -p 21116:21116 -p 21116:21116/udp -p 21118:21118 -v /docker/rustdesk:/root -td --net=host rustdesk/rustdesk-server hbbs -r server_ip -k _
# 创建hbbr容器
docker run --name hbbr -p 21117:21117 -p 21119:21119 -v /docker/rustdesk:/root -td --net=host rustdesk/rustdesk-server hbbr -k _

注意:

1.上面命令中的-k _参数是指强制开启加密连接,以防止我们的 Rustdesk 自托管服务被其他人非法使用。

2.如果想让容器除非手动停止外一直保持运行,可以在命令里添加参数--restart=unless-stopped,以保持容器永远运行。

3.容器创建成功后,Rustdesk 服务会自动在容器目录生成密钥 key。可以通过运行命令:cat /docker/rustdesk/id_ed25519.pub,可以查看获取到 Rustdesk 的一串由字母数字等字符组成的 key,务必复制保存好这个 key,下文配置客户端时要用到!

3.Rustdesk 客户端软件使用方法

3.1 下载 Rustdesk 软件

前往 Rustdesk 开源下载地址:https://github.com/rustdesk/rustdesk/releases/,下载自己系统对应的软件版本然后安装好。

3.2 配置软件

运行 Rustdesk 软件后,点击软件界面右上角的“设置”,找依次点击“网络”-“解锁网络设置”-“ID/中继服务器”,再在弹框里填写好下面参数:

ID 服务器:填你的服务器 IP。

中继服务器:填你的服务器 IP。

API 服务器:不填。

Key:填上面保存好的那个 key。

上面参数按说明填写好后,点击“确认”按钮应用参数设置。然后点击菜单“常规”,找到“服务”点击“启动”按钮,就会回到软件首页,并在软件底部看到“就绪”2 字(如下图),就说明你已经成功切换到自建的 RustDesk 服务器,之后在每一个客户端和被控端软件完成同样的 ID/中继服务器的配置就可以愉快的玩耍了。

使用开源程序 RustDesk 自建远程桌面控制连接服务,支持 Win/Mac/Android/iOS 全平台

4.其他技巧

4.1 保护 RustDesk 安全

为了保证我们自己的 RustDesk 中继服务器安全,防止被他人盗用,龙笑天给大家介绍以下 2 种方法,大家任选其一就行。

4.1.1 方法 1:更换密钥 key

我们可以经常更新密钥 key,更换方法见下面的“4.2”节。

4.1.2 方法 2:直接停止容器

我们可以在不用远程操作的时候,输入下面 2 行命令,停止掉 RustDesk 的 2 个容器就行:

docker stop hbbr
docker stop hbbs

然后,再需要用到远程的时候,输入下面 2 行命令,启动 RustDesk 的 2 个容器就行:

docker start hbbr
docker start hbbs

最后,可以输入命令:docker ps -a,来查看容器的运行状态。其中,STATUS 栏里,Exited 代表已停止,Up 代表运行中。

4.2 修改 RustDesk 的密钥 Key

有时候,我们想要修改更换 RustDesk 的密钥“key”的话,应该怎么操作呢?

方法其实很简单,直接前往服务器文件目录/docker/rustdesk/里删除掉id_ed25519.pubid_ed25519这 2 个文件,然后重启hbbshbbr这 2 个 Rustdesk 容器即可重新生成新的密钥 key。最后,通过运行命令:cat /docker/rustdesk/id_ed25519.pub,可以查看获取到新生成的 key,填入客户端软件的配置里即可。

4.3 导出/导入“ID/中继服务器”配置

当我们按照上面的“3.2”节,把主控端的“ID/中继服务器”配置好了以后,其他的被控端软件也要进行同样的配置。那么,有没有快捷方便的方法完成被控端的配置呢?

使用开源程序 RustDesk 自建远程桌面控制连接服务,支持 Win/Mac/Android/iOS 全平台

当然有了,如上图,主控端网络配置好后,点击红圈里的第 2 个按钮,可以导出网络配置得到一串配置字符串。然后在被控端,复制这串配置字符串后,点击红圈里的第 1 个按钮即一键快速的完成配置的填写了,然后点确定即可。

4.4 如何将中继服务器配置直接内置到客户端里?

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

龙笑天在此介绍 2 种方法,大家任选一种即可。第 1 种最简单粗暴,但会暴露自己的中继服务器等信息。第 2 种的话,就不会暴露自己的中继服务器信息,属于高阶玩法,推荐极客玩家使用。

4.4.1 方法 1:更改客户端程序名

此方法由 Rustdesk 官方文档有提供,最简单直接,但仅限 Windows 系统客户端使用。就是将中继服务器配置信息写入到 Rustdesk 客户端的文件名,即,将客户端 exe 程序名称从rustdesk.exe改为rustdesk-host=<host-ip-or-domain>,key=<public-key-string>,-qs.exe

其中,<host-ip-or-domain>为中继服务器的 IP 或域名,<public-key-string>为中继服务器的服务端公钥。具体示例:rustdesk-host=1.2.3.4,key=abcdef123456=,-qs.exe

4.4.2 方法 2:编译生成自己的客户端

利用 Github Actions 编译生成内置自己中继服务器信息的 RustDesk 客户端。详细步骤有点长,不在此赘述了,可参考这 2 篇文章:部署自己的远程桌面服务器 RustDesk,RustDesk 自定义客户端-小风博客RustDesk 通过 API 防止服务器被滥用 自动编译将服务器等信息内置客户端 - 鼠标迁徙

5.相关参考

RustDesk:开源远程桌面与自建服务器解决方案 - RustDesk 官网
Docker – RustDesk 官方文档
开源远程桌面软件 Rustdesk 部署 | GoodBoyboy 's Blog|惬意小屋-点滴记忆
远程部署方案 RustDesk 教程 - 开发调优 - LINUX DO
自建远程桌面连接服务,RustDesk 搭建教程 - 雨月空间站
宝塔搭建属于自己的远程桌面服务器 - 登山亦有道
自建开源全平台 RustDesk 远程桌面控制服务端 - lcry
使用 RustDesk 建立专属自己的远程桌面一个好玩的、开源的、简单的、可以自主搭建的远程桌面连接小工具,推荐饱受各类收费 - 掘金
RustDesk 远程桌面:开源、自托管的最佳远程桌面工具 - 空屿
RustDesk 自建服务器简易教程 | Solitudes
rustdesk 开源版单文件客户端免输入设置中继服务器给客户开箱即用 - 飘在云端