Hermes桌面端与NAS端通信实测:三种方式免费搞定指令传递
前几天我们安装体验了桌面端的 Hermes,解决了 NAS 端无法处理部分重任务的问题。
但是也留了一个问题没有解决:
桌面端的 Hermes 怎么和 NAS 端的 Hermes 互相通信,紧密协作呢?
前言和目录
如果在同一个局域网下,只要告诉 Hermes 两端的 IP 地址就可以了,麻烦在于 外网环境 如何处理两端通信的问题。
其实方法很多,这里介绍三种 免费、不需要公网 IP 的。我会写清楚每种方法的优缺点、试用场景。大家可以根据自己的实际情况按需取用:
- 双端Hermes工作协同分工思路
- 通信方式一:内网穿透 + API
- 通信方式二:Cloudflare Tunnel + 认证 + API
- 通信方式三:Clawmail
- 实战1:保持某个 skill 两端一致
- 实战2:共用同一个 Hindsight 记忆库
双端Hermes工作协同分工思路
回顾一下我在已经部署 NAS 端 Hermes 的情况下,为什么还要再安装个桌面端。
NAS 端性能受限,重任务无法胜任
NAS 端文件操作不如电脑上的桌面端方便
所以,我现在的方案是:
(1)NAS 端:
发挥 24 小时在线的优势,运行轻量、持续、多人合作的任务。
——比如家庭记账、AI 知识库管理、个人待办事项、工作任务管理、定时任务等。
Hermes 所需的 Docker 服务也在 NAS 上,没必要电脑上再跑一套。
——比如 Hindsight、TEI、Ollama、PaddleOCR 等也运行在 NAS 端,桌面端通过后面介绍的 API 方法调用。
(2)桌面端:
发挥硬件性能优势,运行需要高性能、但不用 24 小时在线的任务。
——比如编程、写报告、做视觉化报表等。
(3)协作思路:
首先是工作成果的同步,比如 Hermes 写的报告、管理的知识库、写的项目代码库等。
这个可以通过挂一个 syncthing 或者品牌 NAS 客户端自带的同步服务解决。

我是用的绿联云客户端。
文件同步后,两个 Hermes 各干各的活儿没问题。
但有些事不是同步文件就能解决的,还必须让它们能互相进行 API 级别的指令通信。比如:
主要业务 Skills 的同步更新:一端改了,另一端也要同步改。
调用基础服务:共用 NAS 端的 Hindsight 记忆库、向量模型、OCR 服务等。
知识库检索:桌面端进行FS5本地检索+调用NAS端向量检索
具体的使用场景咱们后面再说,先说说在没有公网 IP 的情况下,怎么实现外网双端通信。
方式一:内网穿透 + Hermes API通信
内网穿透是最基础的方案。
通过在 NAS 和电脑上都安装 Tailscale/ZeroTier/节点小宝 等服务,组建虚拟局域网。
之后互相访问就跟局域网一样简单。
确定成功加入虚拟局域网后,告诉两边的 Hermes 互相的虚拟内网 IP 和端口( IP地址:8642 ),告诉他们要通过 API 实现互相调用,他们就会自己想办法通信了。
对玩 NAS 的朋友来说,内网穿透都是小儿科了吧,这里就不多说了。
注意:记得设置 Hermes API Key,连接时可以自动验证,不要裸奔。
优点:配置简单,服务可以常驻。免费和收费方案都有,双端可以互访。
缺点:如果同时开有 VPN、NAS 的流量转发服务等服务时,容易互相干扰。尤其在 P2P 隧道打通失败的情况下,会影响 NAS 官方正常提供流量转发服务的速度(如绿联的 UgreenLink),造成 NAS 客户端操作卡顿。
适合场景:大部分情况都可以用这个方案,可以设置开机自启动来无感连入虚拟内网。适合隧道稳定,或不怎么用电脑 NAS 客户端或 VPN 的场景。

方式二:Cf Tunnel + Hermes API通信
Cloudflare Tunnel 的思路和内网穿透不一样,Tunnel 是把 NAS 上的服务通过域名暴露到公网,让桌面端可以直接访问。
正因如此,不会干扰到电脑上的 VPN 和 NAS 的流量转发服务。
但是配置更复杂一些,需要配置的内容有:
一个托管在 Cloudflare 的域名
NAS 上跑一个专门的 Docker 容器来连接 Cloudflare
在 Cloudflare 设置零信任认证,保证安全
优点:不用在桌面端装任何客户端,有浏览器就能用。零信任认证很安全,除域名费用外,其他服务全免费。
缺点:要有个托管在 Cloudflare 的 域名,推荐注册 6-8 位数字. xyz 域名,很便宜;Cloudflare 边缘节点延迟较高(但纯API调用够用了),配置复杂。只能单向通信。
适合场景:
已经有域名、只需要桌面端→NAS 端单向通信、不想用内网穿透的场景。
Cloudflare Tunnel 的搭建步骤,要详说太长了。
我准备下篇文章单独说,这里把简单的步骤梳理一下,有动手能力的同学可以先自己操作:
- 域名托管在Cloudflare
- 在 Cloudflare Zero Trust 控制台创建隧道
- 在 NAS 部署 Cloudflared 容器
- 为需要调用的接口配置域名路由
- 设置零信任认证(CF Access),拒绝数据裸奔
- 设置 Hermes API Key
- 桌面端 Hermes 配置 CF Access
或者等我一两天,我收集一下素材就发出来。

方式三:ClawMail — 邮件通信
前两种都是API直连,实时请求实时响应。
但有时实时性不需要那么强,或担心网络波动造成指令丢失,这时可以用邮件当异步消息通道。
Claw邮箱是网易推出的AI专用邮箱,Hermes 原生支持收发,且支持长链接在线。
这很重要,这意味着 Hermes 会像用飞书插件一样用它,保证及时收到邮件。
一个账号免费支持 1 个 Agent 主邮箱和 4 个 Agent 子邮箱,一共 5 个,功能一样。
流程是这样的:
为桌面端、NAS 端的 Hermes 分别配置好一个邮箱,主/子邮箱无所谓。
注意配置好通讯规则,为两个邮箱设置收发信件白名单。

配置好后,桌面端就可以发邮件到 NAS 端邮箱,邮件标题写明指令(比如[SKILL-SYNC] data-report),NAS 端收到新邮件就能执行。
我们还可以设置NAS端完成指令后通过飞书 Home Channel 告知我们结果。
优点:
(1)不用开端口、不用Tunnel、不用内网穿透,只要配置好邮箱就能通信。
(2)异步模式,不怕指令丢失。
(3)Claw 邮箱免费额度,低频场景基本够用。
缺点:
(1)虽说是长链接监听,但还有几分钟延迟。异步任务影响不大。
(2)发信额度限制。虽然没找到官方消息,但确实是有周期发信上限的。

适合场景:对实时性要求不高、但对稳定性要求很高的异步任务。也可以作为Tunnel或Tailscale连不上时的备用通道。
以下是我的桌面端 Hermes 更新了某个 skill 后,通过邮件通知 NAS 端 Hermes 同步更新这个 skill 后,NAS 端 Hermes 的执行结果汇报。

三种方式适用场景总结

实战1:保持数据分析skill两端一致
三种通信方式说完了,拿一个实际例子演示。
我的桌面端和NAS端都需要用到data-report这个skill。
桌面端 Hermes 负责根据素材生成分析报告。
NAS 端 Hermes 每周一自动跑定时任务补充素材、向量化已有报告。
素材和报告成品通过文件同步保持两端一致。
但 skill 内容有更新时,也得让两边保持一致。
这个 Skill 用文件同步服务同步就不合适了,要用桌面端给 NAS 端 Hermes 发指令进行同步。
分工思路:

方法一:内网穿透+API:
桌面端直接通过 NAS_IP:8642 调 NAS 端 Hermes API,让NAS端拉最新skill文件。几十毫秒完成,最直接。
方法二:Cf Tunnel+API:
跟Tailscale一样调API,只是请求地址变成了自有域名,病多带两个 CF Access Header 验证身份。
方法三:ClawMail异步同步:
桌面端发一封[SKILL-SYNC] data-report邮件,NAS端收到后执行。5-10 分钟内完成。
实战2:双端共用同一个Hindsight记忆仓库
这就不能用 ClawMail 了,因为这个调用频繁,发信限额不允许,而且需要实时回应。
桌面端访问 Hindsight 的请求需要实时直达 NAS 上的 Hindsight 容器。
所以,这个只能通过 API 的方式通信,比如刚才说的内网穿透和 Cloudflare Tunnel。
分工思路:
NAS 端因为 24 小时在线,可以游刃有余地设置定时任务,负责维护 Hindsight 和记忆数据,
桌面端只负责自己那部分的存储和检索就行了。

还有什么需要注意的
桌面端还有两个痛点:
(1)桌面端的配置文件、大部分 Skill 是独立于 NAS 端的,所以需要单独配置备份任务。
(2)桌面端现在没有沙箱,要注意文件安全。
这些咱们以后再说。
关注我,蹲后续。您的支持对我真的很重要O(∩_∩)O)。让我们共同打造互联网内容创作和知识分享的一股清流!ヾ(◍°∇°◍)ノ゙
