一、电话里讲不清的电脑问题
电话里帮人修电脑,对方描述半天,我猜半天,还是搞不清问题出在哪。想连上去看一眼,免费版不是弹窗就是限速——远程协助这件事,就没遇到过顺心的。
之前我一直用 TeamViewer 远程帮家里人看,但免费版限制不少,用着用着就提示「检测到商业用途」,经常连不上。向日葵也试过,免费版速度限制得厉害,传个大点的文件要等很久。
我就想,有没有一个方案,完全免费、不限速、自己掌控服务器的?我翻了一圈,发现了一个宝藏项目,用我 NAS 上闲置的资源就能搭起来,跑了两周,体验非常好。
二、为什么我最终选了 RustDesk
咱们先说说这个项目是什么来头。
RustDesk,一个用 Rust 语言写的开源远程桌面软件,GitHub 上已经超过 12 万颗星。它的核心功能跟我之前用的 TeamViewer 几乎一样:远程桌面控制、文件传输、远程协助。
但最大的区别在于——它完全开源免费,而且支持自建服务器。
什么意思呢?就是中继服务器可以部署在我自己的 NAS 上,所有流量走我的服务器,不限速、不限时长、没有商业检测弹窗。家里电脑连到我的服务器,我再远程过去,整个过程数据都在自己的设备上流转。
三、我 NAS 上的配置
我用的是一台比较常见的 NAS,支持 Docker。咱们手里有 NAS 的话,不管是群晖、威联通还是自己攒的黑群晖,只要支持 Docker,基本都能跑。
RustDesk 的服务端分两个组件:
- hbbs:ID 注册和中继调度服务器,负责分配 ID 和协调连接
- hbbr:中继服务器,负责实际的数据传输
两个服务加在一起,内存占用大约 50MB,对 NAS 来说几乎可以忽略不计。
四、完整部署步骤
第一步:准备工作
在 NAS 的文件管理器里,创建一个文件夹用来存放 RustDesk 的配置和数据。我习惯放在 /docker/rustdesk/ 下面。
第二步:编写 docker-compose.yml
创建一个 docker-compose.yml 文件,内容如下:
services:
hbbs:
image: rustdesk/rustdesk-server:latest
container_name: rustdesk-hbbs
restart: unless-stopped
ports:
- 21115:21115
- 21116:21116
- 21116:21116/udp
- 21118:21118
volumes:
- ./data:/root
command: hbbs -r <你的公网 IP 或域名>:21117
depends_on:
- hbbr
environment:
- TZ=Asia/Shanghai
hbbr:
image: rustdesk/rustdesk-server:latest
container_name: rustdesk-hbbr
restart: unless-stopped
ports:
- 21117:21117
- 21119:21119
volumes:
- ./data:/root
command: hbbr
environment:
- TZ=Asia/Shanghai第三步:配置说明
上面这个配置有几个关键点,我重点说一下。
端口映射:
21115:NAT 类型测试端口(TCP)21116:ID 注册和心跳端口(TCP+UDP)21117:中继数据传输端口(TCP)21118:WebSocket 支持(TCP,可选)21119:WebSocket 中继(TCP,可选)
hbbs 的启动参数 -r <你的公网 IP 或域名>:21117 指的是中继服务器的地址,一定要填自己 NAS 的公网 IP 或者域名,后面跟 hbbr 的端口 21117。
如果家里没有公网 IP,参照之前文章实现。出门在外访问不了NAS?一个神器5分钟搞定,不用公网IP
第四步:启动服务
在 docker-compose.yml 所在的目录下,执行:
docker compose up -d启动后可以用 docker compose logs 看看日志,如果看到类似 hbbs listening on 0.0.0.0:21116 和 hbbr listening on 0.0.0.0:21117 的输出,就说明服务跑起来了。
第五步:防火墙放行
别忘了在 NAS 的防火墙和路由器上放行上面提到的端口,特别是 21115-21117 这几个。路由器上要做端口转发,把外网进来的请求转到 NAS 的内网 IP 上。
五、客户端怎么连接
服务端搭好之后,咱们来配置客户端。
下载客户端
去 RustDesk 的官网下载客户端就行,支持 Windows、Mac、Linux、Android、iOS,全平台覆盖。
装好后打开,就是下面这个样子:左边是本机自己的 ID 和密码,告诉对方就能被连接;右边输入对方的 ID,点连接就能远程过去。

配置服务器地址
安装好客户端之后,打开设置,找到「网络」或「ID/中继服务器」配置项,填入以下信息:

- ID 服务器:自己 NAS 的公网 IP 或域名(端口 21116)
- 中继服务器:自己 NAS 的公网 IP 或域名(端口 21117)
- Key:从 NAS 上
/docker/rustdesk/data/id_ed25519.pub文件里复制出来的内容
这个 Key 文件在启动 hbbs 后会自动生成,用它来加密连接,保证传输安全。
给家人的电脑设置
我给家里电脑上装好客户端,填好服务器地址,然后把生成的 ID 和密码发过去。这样不管电脑出了什么问题,我只要打开自己的客户端,输入 ID 和密码,就能直接连过去,就像坐在那台电脑前一样。
六、用了几周的真实感受
说几个我实际用下来的感受。
速度是真的快。因为中继服务器跑在我自己的 NAS 上,没有限速,远程桌面操作基本感觉不到延迟,拖文件、复制粘贴都很跟手。

文件传输也很方便。直接拖拽文件就能传,不用额外开 FTP 或者网盘中转。

稳定。跑了两周多,没掉过线,没弹过任何商业检测提示。远程帮家里人清过一次弹窗广告,还装了个打印机驱动,全程顺畅。
资源占用极低。两个容器加起来占的内存不到 50MB,CPU 平时几乎不动,只有在传输画面时才会有一点波动。对我 NAS 上其他服务——比如相册备份、下载任务、影音媒体库——完全没有影响。
跨平台真的好用。我自己主力用 Mac,家里电脑用 Windows,手机上也可以用 Android 客户端临时应急。
七、访问不了怎么办
如果 NAS 没有公网 IP,有几个办法:
- 用路由器的 DDNS 功能,申请一个免费的域名绑定到家里的动态公网 IP
- 用内网穿透工具把端口映射出去
- 如果只是局域网内使用,那就更简单了,直接填 NAS 的内网 IP 就行
我自己的情况是有公网 IP,配合 DDNS 绑定了一个域名,走到哪都能连回家里的 NAS。
写在最后
自从搭了这个服务,远程帮家里修电脑的效率提升了一大截。以前打电话讲半天讲不明白,现在直接连上去看,一两分钟就解决。偶尔在外面出差,需要远程连回办公室的电脑处理点事情,也完全没问题。
如果家里也有 NAS,哪怕只是放那吃灰的,不妨花十几分钟搭一下,之后就会发现,这个小小的投入,换来的便利远超想象。
点个关注不迷路 👆 我还会继续分享更多 NAS 上自建服务的实用教程。
今天聊一个话题: 你用过哪些远程桌面软件?遇到过什么坑?或者你在这方面有什么需求,欢迎在评论区留言,咱们一起交流。
夜雨聆风