连同志 發表於 2025-11-10 15:44:00

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

<h2 id="说在前面">说在前面</h2>
<p>提到远程桌面,向日葵、ToDesk 肯定都知道,这两款我都使用过,我个人使(白)用(嫖)体验来看 ToDesk 把向日葵压着打,向日葵的免费通道极其不稳定,经常用着用着就掉线,连接使用体验卡顿感明显,ToDesk 就会强很多,我用 ToDesk 一次掉线都没有过,也不是很卡顿,不过据说 ToDesk 现在有每月免费连接时长(我没触发过这个限制所以不太清楚)</p>
<p>最近好像还有一个 UU 远程桌面比较火,我只是听说没有使用过,据说是新产品所以比较良心,不过不知道能不能经得起时间的考验,鉴于目前没有一款工具用着比较安心,而且我又恰好有一台国内服务器,带宽和延迟还算可以(后面会提到),所以我把目光移到了开源远程桌面工具 RustDesk,研究了一下发现还是挺好用的,部署其实挺简单的,不过如果不了解的话还是会有一些疑问,所以我决定整理一篇文章出来作为笔记,也能帮到有同样需要的人</p>
<h2 id="docker镜像下载">Docker镜像下载</h2>
<p>本文默认你会使用 Docker,首先跟随 RustDesk官方文档 的指引,下载 <code>rustdesk/rustdesk-server</code> 镜像,我个人不喜欢 latest 喜欢指定版本号进行下载,所以下载的是目前最新的和 latest 一致的 <code>1.1.14</code> 版本</p>
<p>考虑到部分人并不能很方便的下载镜像,这里我使用 did-tool 工具提前把镜像下载好了,如果你需要自建但不方便下载镜像,我会提供镜像下载地址,可以去文章末尾下载后导入到 Docker</p>
<pre><code class="language-bash"># 自己下载镜像
$ docker pull rustdesk/rustdesk-server:1.1.14

# 导入离线镜像
$ docker load -i rustdesk-server_1.1.14.tar
</code></pre>
<p><img src="https://img2024.cnblogs.com/blog/1772049/202511/1772049-20251110154112279-783570871.png" alt="image" loading="lazy"></p>
<h2 id="部署服务端">部署服务端</h2>
<p>按官方文档描述,需要基于该镜像启动 <code>hbbs</code> 和 <code>hbbr</code> 两个容器,共需要暴露 6 个端口,文档中的示例直接使用 <code>--net=host</code> 模式直接使用了宿主机的网络,这样的好处是不需要管理端口,而且可以查看每个连接的 IP 地址,我个人不喜欢这种,我希望容器开放的端口能牢牢把握在自己手里</p>
<p>经过我的测试,只需要暴露 3 个端口就可以实现远程桌面的功能(其实 2 个也可以,后面会提到),相比 <code>--net=host</code> 模式使用端口映射有个缺点,官方文档中提到该方式无法查看连接者真实 IP,不过这对我来说并不重要,接下来准备启动容器部署服务端环境:</p>
<pre><code class="language-bash"># 先启动 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
</code></pre>
<p>到这里 RustDesk 服务端其实就已经部署完成了,部署完成后当前目录会多一个 rust-desk 的目录,通过查看该目录下的 <code>.pub </code> 查看 KEY,后面会用到</p>
<pre><code class="language-bash">$ cat rust-desk/id_ed25519.pub
+8XT07pESbNfyozhAEKQNpRkVPwEayOPl598q5Vf5ZA=
</code></pre>
<h2 id="客户端配置说明">客户端配置说明</h2>
<p>访问 Github 下载官方提供的客户端,这里我用 win 系统举例,推荐下载 MSI 安装程序,这个客户端安装包后面也会给出</p>
<p><img src="https://img2024.cnblogs.com/blog/1772049/202511/1772049-20251110154139203-1657220792.png" alt="image" loading="lazy"></p>
<p>分别在控制端和被控端安装完成后打开软件,依次点击右上角设置、网络、解锁网络设置,然后点击 ID/中继服务器</p>
<p><img src="https://img2024.cnblogs.com/blog/1772049/202511/1772049-20251110154148320-270429429.png" alt="image" loading="lazy"></p>
<p>ID 服务器填写 21116 对应的 30006 端口,中继服务器填写 21117 对应的 30007 端口,API 服务器留空即可,KEY 填写刚刚在服务端查看的 KEY,控制端和被控段都需要这么配置</p>
<p><img src="https://img2024.cnblogs.com/blog/1772049/202511/1772049-20251110154158168-476798164.png" alt="image" loading="lazy"></p>
<p>配置完成后点击保存,回到主界面就能看到下面是就绪的状态了</p>
<p><img src="https://img2024.cnblogs.com/blog/1772049/202511/1772049-20251110154207902-1001542059.png" alt="image" loading="lazy"></p>
<p>然后直接输入被控端的 ID 点击连接,输入连接密码,就大功告成了</p>
<p><img src="https://img2024.cnblogs.com/blog/1772049/202511/1772049-20251110154217109-1880681555.png" alt="image" loading="lazy"></p>
<h2 id="关于端口映射">关于端口映射</h2>
<p>我之前说过我希望容器开放的端口能牢牢把握在自己手里,并支持自定义端口,21116 和 21117 端口可以在客户端进行配置,但 21115 并没有找到配置的地方,这里当时纠结了一段时间</p>
<p>后来经过我的测试把 21115 端口关闭,不开放也是可以实现远程连接的,只是目标设备的状态从绿色变成了橙色,无论目标设备是否在线都处于离线状态,所以据我的推测这个端口应该是检测设备在线状态的,这个状态应该不是很重要,因为只要我知道被控端在线,哪怕没有检测到也是可以直接去连的</p>
<p>而且通过查找资料以及自己的测试,发现这个端口不需要特别配置,只要在 Docker 中开放任意端口,RustDesk 自己是能识别到的,根据绿色和橙色的状态就能判断是否识别成功了</p>
<p><img src="https://img2024.cnblogs.com/blog/1772049/202511/1772049-20251110154238495-2045761508.png" alt="image" loading="lazy"></p>
<h2 id="关于网络和带宽">关于网络和带宽</h2>
<p>写这篇文章的时候我是用本地虚拟机搭建的环境,实际上我在服务器也跑过 RustDesk,我的服务器为湖北十堰 4H4G20M 配置,核心和内存其实不重要,我的服务器带宽为 20M,ping 延迟为 50ms 左右,连接测试还算挺流畅,使用体验比 ToDesk 强一些</p>
<p>根据我的测试,在正常使用且画面没有大幅变化的情况下,每秒网速在 100KB/s 左右,且能控制到 100KB/s 以内,偶尔网速在 200KB/s 左右,当画面快速变化(例如我快速来回拖动窗口)的时候,网速最高达到 700KB/s 左右,所以个人建议想要自建 RustDesk 远程桌面,应该至少有 5M 带宽才能有相对较好的体验</p>
<p><img src="https://img2024.cnblogs.com/blog/1772049/202511/1772049-20251110154248490-875045642.png" alt="image" loading="lazy"></p>
<p>还有一个问题我没搞懂,看看有没有懂行的佬给我解答一下,我自己服务器搭建的 RustDesk 服务(20M,延迟50ms)和本地局域网内搭建的 RustDesk 服务器,网速居然没有任何差别,本地局域网带宽和延迟都是顶级的居然不会特别流畅,希望有懂的大佬解答一下</p>
<h2 id="文件下载地址">文件下载地址</h2>
<p>分别给出了 Docker 镜像和 win 客户端文件,蓝蓝的链接点击下载,密码:dcqu</p>


</div>
<div id="MySignature" role="contentinfo">
    <hr style="opacity: 0.2;" />
<p style="margin-top: 10px; margin-bottom: 0px; font-size: 14px; color: #565656;">
作者多数为原创文章 ( 部分转载已标出 ),目前资历尚浅文章内描述可能有误,对此造成的后果深表歉意,如有错误还望指正
</p><br><br>
来源:https://www.cnblogs.com/hanzhe/p/19207237
頁: [1]
查看完整版本: 非常简单的基于 Docker 自建 RustDesk 远程桌面教程