
[!NOTE] 很多需要远程办公或管理家里 NAS 的小伙伴最近都向老周吐槽:以前好用的商业远控软件,现在不仅限速严重,甚至还开始限制免费连接的设备数,各种充值套路让人防不胜防。今天老周手把手教大家用 Docker 一键部署 RustDesk 开源远控的中继服务器,结合国内低延迟云服务器,打造一套 100% 掌控、安全且不限速的专属远程桌面系统!本教程仅用于个人多设备互联与合规的远程办公场景。
亲爱的读者,欢迎回到 老周的AI进化实验室!
在前面的几期里,我们聊了许多关于 Tailscale、NetBird 异地组网的实战方案。很多小伙伴给老周留言:“老周,组网确实解决了设备互联的问题,但我日常还需要直接远程控制家里或办公室电脑的桌面。以前用向日葵或 ToDesk,最近动不动就提示‘连接数超限’或者‘降速至 100KB/s’,画面卡得像 PPT,这可怎么整?”
如果你也有同样的困扰,今天老周推荐的方案绝对是你的救星——自建 RustDesk 远程控制系统。
RustDesk 是一款风靡全球的开源远程桌面软件,它被誉为 TeamViewer 和 AnyDesk 的最佳开源替代品。它的核心优势非常明显:
今天,老周就教大家如何利用一台国内的云主机(如阿里云北京、腾讯云上海),通过 Docker-compose 一键拉起属于您自己的 RustDesk 中继服务!
为了保证远程连接的低延迟与高稳定性,我们需要准备:
21115, 21116, 21117, 21118, 2111921116📌 端口功能小科普(极客选看): *
21115:用于 hbbs 处理 NAT 类型测试。 *21116:TCP 用于 hbbs 进行连接打洞协调;UDP 用于 hbbs 提供注册与心跳服务。 *21117:用于 hbbr 进行数据中继转发(当 P2P 打洞失败时,流量走此通道)。 *21118/21119:用于网页版客户端支持(Web 端口,若仅使用安装包客户端可不放行)。
在服务器上安装好 Docker 和 Docker Compose 后,我们开始部署:
mkdir-p/opt/rustdesk-server&&cd/opt/rustdesk-server 新建 docker-compose.yml 文件:
nanodocker-compose.yml 将以下配置粘贴进去。请务必将配置中 <您的国内云服务器公网IP> 替换为您云主机的实际公网 IP(例如 123.123.123.123):
version:'3'services:# hbbs: ID 与握手服务,负责节点注册与 P2P 穿透协调hbbs:container_name:rustdesk-hbbsimage:rustdesk/rustdesk-server:latestcommand:hbbs -r <您的国内云服务器公网IP>:21117 -k _volumes:-./data:/rootnetwork_mode:hostrestart:unless-stoppeddepends_on:-hbbr# hbbr: 中继服务,负责在直连失败时转发远程桌面数据hbbr:container_name:rustdesk-hbbrimage:rustdesk/rustdesk-server:latestcommand:hbbr -k _volumes:-./data:/rootnetwork_mode:hostrestart:unless-stopped🔑 核心参数解析: *
-r <公网IP>:21117:告诉 hbbs 握手服务器,如果两端打洞直连失败,应该指引它们去连接运行在21117端口上的 hbbr 中继服务器。 *-k _:这是安全防护的关键。该参数表示强制开启连接加密验证。启动后容器会自动生成一对公私钥,只有配置了正确 Key(公钥)的客户端才能连接我们的服务,防止他人蹭用您的带宽资源。 *network_mode: host:直接使用宿主机网络栈,避免了容器虚拟网卡的二次转发开销,延迟更低。
在配置文件所在目录下运行命令启动容器:
dockercomposeup-d 启动后,可以通过以下命令确认服务是否运行正常:
dockercomposeps 由于我们开启了 -k _ 强制安全验证,我们需要从服务端拿到公钥,配置到我们的电脑和手机客户端中。
在 /opt/rustdesk-server/data 目录下,系统在首次运行后会自动生成几个证书文件。我们读取以 .pub 结尾的公钥文件:
cat./data/id_ed25519.pub 屏幕上会输出一串类似于 o9hXJ1...kSu3sgiR9= 的随机字符,请完整复制这串字符,这就是我们连接私有服务的安全钥匙。
在主控电脑(如您的办公笔记本)和被控电脑(如家里的 NAS 或台式机)上,前往 RustDesk 官网下载对应的客户端并安装。
打开 RustDesk 客户端,按以下步骤配置:
123.123.123.123)。123.123.123.123)。.pub 证书密钥。配置完成后,观察客户端窗口的最下方,如果显示 “就绪 (Ready)”,且有一个绿色的状态灯,说明您的客户端已经成功连上了自建的专属控制通道!

(注:如果状态显示未就绪,请检查云服务器防火墙是否已放行对应的端口)
配置好主/被控两端后,在主控端输入被控端的 ID,点击连接并输入访问密码,即可秒级接入桌面。
连接成功后,在远程桌面窗口的顶部状态栏上,点击网络连接图标: * 显示 “Direct”:说明两端设备已经通过您的 hbbs 握手服务器成功实现了 NAT 打洞直连。此时传输带宽仅取决于两端网络的上/下行速度,延迟最低(通常是个位数),画质最高。 * 显示 “Relay”:说明由于对称型 NAT 防火墙较严格,打洞失败,流量正通过您云服务器上的 hbbr 中继进行转发。延迟高低取决于您到云主机的物理距离(通常国内云服务器也在 30ms 以内,非常丝滑)。
为了尽量走直连通道,避免消耗云服务器的带宽,建议: 1. 放行本地防火墙:在家里或被控机上,确保本地操作系统的防火墙没有拦截 UDP 通信。 2. 开启路由器 UPnP:在主路由器设置中开启 UPnP(通用即插即用),让客户端能自主向外网映射动态端口,这会极大地提高 NAT 打洞的成功率。
通过自建 RustDesk 握手和中继服务器,我们不仅打破了商业软件的连接数限制和限速套路,更把远程访问的安全控制权牢牢握在了自己手中。只要您的国内云服务器 IP 和端口正常放行,随时随地都能享受到延迟极低、画质丝滑的专属私有远控体验!
如果您在部署过程中遇到了任何网络端口不通或连接问题,欢迎在留言区给老周留言,我们一起探讨解决!
[!TIP] 觉得本期教程实用?别忘了点击“关注”老周的AI进化实验室,并把文章分享给身边同样饱受远控限速折扰的极客朋友们!