news 2026/4/3 4:41:57

非常简单的基于 Docker 自建 RustDesk 远程桌面教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
非常简单的基于 Docker 自建 RustDesk 远程桌面教程

提到远程桌面,向日葵、ToDesk 肯定都知道,这两款我都使用过,我个人使(白)用(嫖)体验来看 ToDesk 把向日葵压着打,向日葵的免费通道极其不稳定,经常用着用着就掉线,连接使用体验卡顿感明显,ToDesk 就会强很多,我用 ToDesk 一次掉线都没有过,也不是很卡顿,不过据说 ToDesk 现在有每月免费连接时长(我没触发过这个限制所以不太清楚)

最近好像还有一个 UU 远程桌面比较火,我只是听说没有使用过,据说是新产品所以比较良心,不过不知道能不能经得起时间的考验,鉴于目前没有一款工具用着比较安心,而且我又恰好有一台国内服务器,带宽和延迟还算可以(后面会提到),所以我把目光移到了开源远程桌面工具 RustDesk,研究了一下发现还是挺好用的,部署其实挺简单的,不过如果不了解的话还是会有一些疑问,所以我决定整理一篇文章出来作为笔记,也能帮到有同样需要的人

Docker镜像下载#

本文默认你会使用 Docker,首先跟随 RustDesk官方文档 的指引,下载 rustdesk/rustdesk-server 镜像,我个人不喜欢 latest 喜欢指定版本号进行下载,所以下载的是目前最新的和 latest 一致的 1.1.14 版本

考虑到部分人并不能很方便的下载镜像,这里我使用 did-tool 工具提前把镜像下载好了,如果你需要自建但不方便下载镜像,我会提供镜像下载地址,可以去文章末尾下载后导入到 Docker

# 自己下载镜像

$ docker pull rustdesk/rustdesk-server:1.1.14

# 导入离线镜像

$ docker load -i rustdesk-server_1.1.14.tar

image

部署服务端#

按官方文档描述,需要基于该镜像启动 hbbs 和 hbbr 两个容器,共需要暴露 6 个端口,文档中的示例直接使用 --net=host 模式直接使用了宿主机的网络,这样的好处是不需要管理端口,而且可以查看每个连接的 IP 地址,我个人不喜欢这种,我希望容器开放的端口能牢牢把握在自己手里

经过我的测试,只需要暴露 3 个端口就可以实现远程桌面的功能(其实 2 个也可以,后面会提到),相比 --net=host 模式使用端口映射有个缺点,官方文档中提到该方式无法查看连接者真实 IP,不过这对我来说并不重要,接下来准备启动容器部署服务端环境:

# 先启动 hbbr 容器

$ docker run --name hbbr \

--restart always \

-v ./rust-desk:/root \

-p 30007:21117 \

-d rustdesk/rustdesk-server:1.1.14 hbbr

# 启动完成后再启动 hbbs 容器

$ docker run --name hbbs \

--restart always \

-v ./rust-desk:/root \

-p 30005:21115 \

-p 30006:21116/tcp \

-p 30006:21116/udp \

-d rustdesk/rustdesk-server:1.1.14 hbbs

到这里 RustDesk 服务端其实就已经部署完成了,部署完成后当前目录会多一个 rust-desk 的目录,通过查看该目录下的 .pub 查看 KEY,后面会用到

$ cat rust-desk/id_ed25519.pub

+8XT07pESbNfyozhAEKQNpRkVPwEayOPl598q5Vf5ZA=

客户端配置说明#

访问 Github 下载官方提供的客户端,这里我用 win 系统举例,推荐下载 MSI 安装程序,这个客户端安装包后面也会给出

image

分别在控制端和被控端安装完成后打开软件,依次点击右上角设置、网络、解锁网络设置,然后点击 ID/中继服务器

image

ID 服务器填写 21116 对应的 30006 端口,中继服务器填写 21117 对应的 30007 端口,API 服务器留空即可,KEY 填写刚刚在服务端查看的 KEY,控制端和被控段都需要这么配置

image

配置完成后点击保存,回到主界面就能看到下面是就绪的状态了

image

然后直接输入被控端的 ID 点击连接,输入连接密码,就大功告成了

image

关于端口映射#

我之前说过我希望容器开放的端口能牢牢把握在自己手里,并支持自定义端口,21116 和 21117 端口可以在客户端进行配置,但 21115 并没有找到配置的地方,这里当时纠结了一段时间

后来经过我的测试把 21115 端口关闭,不开放也是可以实现远程连接的,只是目标设备的状态从绿色变成了橙色,无论目标设备是否在线都处于离线状态,所以据我的推测这个端口应该是检测设备在线状态的,这个状态应该不是很重要,因为只要我知道被控端在线,哪怕没有检测到也是可以直接去连的

而且通过查找资料以及自己的测试,发现这个端口不需要特别配置,只要在 Docker 中开放任意端口,RustDesk 自己是能识别到的,根据绿色和橙色的状态就能判断是否识别成功了

image

关于网络和带宽#

写这篇文章的时候我是用本地虚拟机搭建的环境,实际上我在服务器也跑过 RustDesk,我的服务器为湖北十堰 4H4G20M 配置,核心和内存其实不重要,我的服务器带宽为 20M,ping 延迟为 50ms 左右,连接测试还算挺流畅,使用体验比 ToDesk 强一些

根据我的测试,在正常使用且画面没有大幅变化的情况下,每秒网速在 100KB/s 左右,且能控制到 100KB/s 以内,偶尔网速在 200KB/s 左右,当画面快速变化(例如我快速来回拖动窗口)的时候,网速最高达到 700KB/s 左右,所以个人建议想要自建 RustDesk 远程桌面,应该至少有 5M 带宽才能有相对较好的体验

image

还有一个问题我没搞懂,看看有没有懂行的佬给我解答一下,我自己服务器搭建的 RustDesk 服务(20M,延迟50ms)和本地局域网内搭建的 RustDesk 服务器,网速居然没有任何差别,本地局域网带宽和延迟都是顶级的居然不会特别流畅,希望有懂的大佬解答一下

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/31 19:46:21

15、网络存储与云计算实用指南

网络存储与云计算实用指南 1. Lsyncd 安装与信息查询 在 Ubuntu 系统中,Lsyncd 可通过 Ubuntu 软件包仓库进行安装,只需使用一条命令: $ sudo apt-get install lsyncd若要获取 Lsyncd 的更多信息,可以使用以下命令查看手册页: $ man lsyncd此外,还可参考 Ubuntu Rsy…

作者头像 李华
网站建设 2026/4/1 23:12:31

深度k6性能测试:5个关键行业场景实战与架构优化指南

深度k6性能测试:5个关键行业场景实战与架构优化指南 【免费下载链接】k6 A modern load testing tool, using Go and JavaScript - https://k6.io 项目地址: https://gitcode.com/GitHub_Trending/k6/k6 k6作为现代性能测试工具的标杆,正在重新定…

作者头像 李华
网站建设 2026/3/22 21:21:36

21、Docker与Ampache:容器管理与流媒体服务搭建全攻略

Docker与Ampache:容器管理与流媒体服务搭建全攻略 1. Docker数据卷与网络使用 1.1 数据卷容器 在Docker中,除了常规操作,还能创建命名数据卷容器或仅用于存储数据的容器。可以创建带有挂载卷的命名容器,然后使用 docker run --volumes-from 命令在其他容器中使用这些卷…

作者头像 李华
网站建设 2026/3/31 21:10:59

小型企业部署MySQL云数据库推荐多少CPU和内存配置?

小型企业部署 MySQL 云数据库的配置需结合实际业务负载(如用户量、QPS、数据量、读写比例、是否含报表/分析)来定,但可提供通用、务实的起步推荐(以主流云厂商如阿里云RDS、腾讯云CDB、AWS RDS为例): 原文…

作者头像 李华
网站建设 2026/3/12 18:35:28

27、开源协作工具安装与使用指南

开源协作工具安装与使用指南 在当今数字化的工作环境中,协作工具对于团队的高效运作至关重要。本文将详细介绍三款开源协作工具的安装与使用方法,包括 Hackpad、Mattermost 和 OwnCloud。 1. Hackpad 安装与使用 Hackpad 是一款基于开源编辑器 EtherPad 的协作文档编辑器,…

作者头像 李华