刷到一个挺有意思的话题,结合自己之前的经验,整理了一下核心要点。
前言
我家有台 RK3566 小主机,刷了飞牛 NAS 系统,24 小时挂着,存放一些平时用不上的文件资料,偶尔跑跑 Docker。时间久了,这东西在我家的存在感越来越低——有时候甚至想不起来家里还有这么一台机器在跑着。
直到我接触到 AI Agent 这个方向,动手折腾个人 AI 助手相关的工具。我先后试过几个方案,功能确实能跑,但放在 NAS 上长期运行总我认为差点意思:要么配置太繁琐,每次维护都要翻文档;要么吃硬件资源,一跑起来 NAS 就卡卡的;更别提有些工具只能在局域网里访问,出门在外想调用一下都找不到入口。
后来换到了 Hermes,算是找到了一个相对平衡的点。它本身是专门为长期部署设计的 AI Agent,资源占用控制得还行,接入模型之后可以通过终端、Web 控制台和微信三种方法调用。对于 NAS 用户来说,把 Hermes 部署上去,相当于给这台 24 小时在线的机器配了一个专属 AI 管家——人在外面的时候,打开微信直接问,家里的"管家"帮你查资料、写东西、处理一些简单任务,全程不需要开电脑,不需要进后台。用了一个多月下来,这套组合是目前我试下来最适合 NAS 场景的方案。
1 Hermes 是什么?为什么适合部署在 NAS 上?
Hermes 是一个开源的 AI Agent 项目,可以搞懂成一个能长期运行的 个人 AI 助手。
它和普通聊天机器人不太一样。普通聊天机器人更多是“问一句、答一句”,而 Hermes 更偏向 长期用 和 任务沉淀。我们可以通过 终端、Web 控制台、消息平台 和它交互,让它帮忙处理文本、生成东西,或者完成一些简单的自动化任务。
对于 NAS 用户来说,Hermes 比较适合做成一个 常驻服务。
原因很简单:NAS 本身就是一台 24 小时在线 的设备,平时可以跑 Docker、挂服务、做远程访问。如果把 Hermes 部署到 NAS 里,就相当于给这台机器加了一个可以随时调用的 AI 管家。
2 Docker 一键部署 Hermes
我这次用的是一台 RK3566 小主机,已经刷好了飞牛 NAS ARM 版系统。
飞牛 NAS 本身支持 Docker,因此这里不需要单独安装 Docker,直接通过 SSH 执行脚本部署 Hermes 即可。
接下来正式动手部署。
首先打开飞牛 NAS 桌面的【Docker】,确认 Docker 服务已经开启。然后进入【系统设置】里的【SSH】,把 SSH 服务打开,后面的命令需要通过终端执行。
然后进入【系统设置】中,选择【SSH】,将其启用:
接着,电脑摁下【Win + X】键,选择【终端(管理员)】打开PowerShell窗口:
然后在终端输入如下ssh命令,进行远程连接你的飞牛Nas终端:
ssh n1@192.168.50.212
如下图所示:
接着,在终端执行如下命令,切换至root用户(输入密码时不会显示):
sudo -i
2.2 部署Hermes
切换好后,然后执行如下命令,然后选择安装 Hermes Agent,进行一键部署hermes:
curl -fsSL https://gitee.com/jun-wan/script/raw/master/fnos-hermes/fnos-hermes.sh -o /tmp/fnos-hermes.sh && chmod +x /tmp/fnos-hermes.sh && /tmp/fnos-hermes.sh
默认直接回车即可,然后回车进入Hermes 初始化向导,需要等待镜像拉取:
拉取完成后,会出现如下选项,直接选择快速动手即可(Quick setup):
回车后,会来到选择给出商页面(Select provider),这里以DeepSeek为例,选择进行回车:
接着, 访问deepseek官方keys页面,进行创建一个apikey:
https://platform.deepseek.com/api_keys
复制好key后,填写到终端(粘贴不会显示):
模型这里就用默认的deepseek-chat,然后回车,会来到配置消息平台的部分,我们选择第二项,先暂时跳过:
跳过后,等待一下,可以见到提示已经初始化完成了:
我们回车,运行这个hermes:
运行起来是这样的,我们可以对话询问一下:
你好,你是谁?你当前运行在什么操作系统上,接入的是什么模型?
如下图所示:
可以见到它清楚运行在Docker容器里面,接入的是deepseek模型,接着我们输入如下指令退出,完成剩下部分配置:
/exit
出现如上提示,代表全部配置完成啦!我们还可以访问web控制台:
http://192.168.50.212:9119
如下图:
3 将Hermes接入至微信
我们重新执行一键部署脚本:
curl -fsSL https://gitee.com/jun-wan/script/raw/master/fnos-hermes/fnos-hermes.sh -o /tmp/fnos-hermes.sh && chmod +x /tmp/fnos-hermes.sh && /tmp/fnos-hermes.sh
输入6进行配置聊天平台网关:
然后会进入到如下页面,选择【WeiXin】然后回车:
接着会提示是否开始扫码登录,直接回车:
扫码连接后,会来到如下页面,依次选择默认的配对审批模式和禁用群聊消息,然后回车用当前连接的账号:
最后会回到消息平台选择菜单,选择【Done】退出:
接着回到菜单,选择【8】重启一下hermes服务:
此时可以给hermes发送消息测试:
可以见到能正常回复了,但是还需要配对审批:
hermes pairing approve weixin QKHBWHAJ
回到菜单,选择选项【10】执行容器内 Hermes 原生命令:
输入审批授权的命令:
出现如上提示,代表这个微信用户已经通过配对授权了,接着我们直接对话询问就可以了:
你好,你是谁?请你介绍一下你自己,你都能干什么?
如下图所示:
可以看到,这次它成功的回复了!这样我们就配置好了hermes并且接入到微信啦!接下来就是大开脑洞让它完成任务了,比如给个提示词:
请你给我写一个用于旅游的好看点儿的宣传落地页
效果(DeepSeek-chat模型):
可以看到,这次 Hermes 已经成功回复了。到这里,我们已经完成了本地部署和微信接入,NAS 里的这个 AI 助手基本算是跑起来了。
4 穿透 Hermes WebUI 以实现公网访问
前面我们已经把 Hermes 部署到了飞牛 NAS 上,也完成了微信接入。到这一步,NAS 里的 AI 助手已经可以正常使用了。
不过,局域网里的服务终究还是局域网服务。Hermes 的 Web 控制台虽然可以通过本地地址访问,但如果人在外面,想远程查看运行状态、调整配置,或者临时打开控制台,就没那么方便了。
因此接下来,我们给它加上 cpolar 内网穿透,把飞牛 NAS 本地的 9119 端口 映射到公网。这样即使不在家,也能通过公网地址访问 Hermes 的 Web 控制台。
4.1 什么是 cpolar?
它是一款内网穿透工具,可以把局域网内运行的服务映射到公网。
简单来说,只要服务已经在本地跑起来,比如这篇这篇中的 Hermes Web 控制台 9119 端口,就可以通过创建公网访问地址。这样外部设备不需要配置路由器端口转发,也能远程访问本地服务。
支持 Windows、macOS、Linux、树莓派、群晖 NAS 等平台,也适合飞牛 NAS 这类支持 SSH 和 Docker 的设备使用。
4.2 安装 cpolar
回到 SSH 终端窗口,也就是前面连接飞牛 NAS 的终端,执行下面命令安装 :
sudo curl https://get.cpolar.sh | sh
如下图所示:
安装完成后,执行下面命令查看服务状态:
sudo systemctl status cpolar
如下图所示:
如果状态中显示 active (running) 就说明 cpolar 已经正常启动。
接着,在浏览器中输入下面地址,访问 Web UI 控制台,比如我这里的飞牛 NAS IP 是 192.168.50.212,因此访问地址就是:
http://192.168.50.212:9200
如下图所示:
可以看到,已经成功进入 Web UI 页面。如果还没有注册 账号,也可以点击页面底部的注册入口先完成账号注册。
4.3 将 Hermes WebUI 映射到公网
注册好账号以后,回到该页面进行登录即可,登录成功后,进入侧边的【隧道管理>隧道列表】,可以看到有2条隧道:
选择website这条隧道,点击编辑进行修改(也可以创建新的隧道):
创建或者更新完成后,接着点击状态>在线隧道列表,可以看到同一个隧道生成了两个公网访问地址,一个是 http,另一个是 https:
这里以https为例,访问测试一下:
可以看到,成功的访问到了飞牛Hermes的管理界面,已经支持外网访问啦!
5 固定二级子域名
虽然前面我们使用 永久免费套餐版成功实现了内网穿透,但免费版的随机域名存在一些不便之处:域名又长又难记忆,而且每隔 24 小时左右就会自动变化一次。这意味着每次域名变化后,我们都需要重新分享新的地址,使用起来挺不方便。
为了解决这个问题,cpolar 给出了固定二级子域名功能。只需升级到任意付费套餐,就可以配置一个固定不变、简短易记的专属域名,彻底告别域名频繁变化的烦恼。下面我们来看看如何配置固定二级子域名。
5.1 设置二级子域名
首先,进入官网的预留页面:
https://dashboard.cpolar.com/reserved
然后,选择预留菜单,即可看到保留二级子域名项,填写其中的地区、名称、描述(可不填)项,然后点击保留按钮,操作步骤图如下:
列表中显示了一条已保留的二级子域名记录:
- 地区:显示为China Top。
- 二级域名:显示为hermes01。
5.2 修改隧道为子域名方法
进入侧边菜单栏的【隧道管理】下的【隧道列表】,可以看到名为【hermes01】的隧道:
点击【编辑】按钮进入编辑页面,修改域名类型为【二级子域名】,然后填写前面配置好的子域名,点击更新按钮:
接着来到【状态】菜单下的【在线隧道列表】可以看到隧道名称为【hermes01】的公网地址已经变更为【二级子域名+固定域名主体及后缀】的形式了:
这里以https访问测试一下:
访问成功!到这里,Hermes WebUI 已经拥有了一个固定的公网访问地址。不过,公网访问虽然方便,但也意味着这个页面可以被外部网络访问到。为了避免控制台被别人直接打开,接下来我们再给这个公网地址加一层 HttpAuth 访问认证。
6 设置 HttpAuth 访问认证
前面我们已经通过 固定二级子域名,给 Hermes WebUI 配置了一个固定的公网访问地址。
这样做的好处是访问更方便,但也带来一个问题:只要清楚这个公网地址,别人也可能尝试打开你的 Hermes WebUI。
所以,建议给公网访问地址再加一层 HttpAuth 访问认证。这样访问 Hermes WebUI 时,需要先输入用户名和密码,通过认证后才能进入页面,相当于在 WebUI 外面再套一层基础保护。
6.1 配置 HttpAuth
回到 Web UI 控制台,点击左侧菜单栏的【隧道管理】→【隧道列表】,找到前面配置好的 hermes01 隧道,点击右侧的【编辑】:
在编辑页面中,展开【高级】选项,找到 HttpAuth 配置项,填写自定义的用户名和密码,格式参考如下:
admin:123456
留意,中间使用的是英文冒号 :。用户名和密码可以自定义,但不建议使用 admin:123456 这类弱密码。
如下图所示:
设置完成后,点击【更新】保存配置:
接着再次访问前面配置好的 Hermes WebUI 公网地址,就会先弹出一个认证窗口,需要输入刚才设置的用户名和密码:
认证通过后,才能继续进入 Hermes WebUI 页面。
这样一来,即使公网地址被别人看到,对方也无法直接打开控制台,安全性会更高一些。
安全提醒:HttpAuth 只是基础访问认证,适合给个人测试环境增加一层保护。公网访问地址不要随意公开,密码也尽量设置繁琐一些。
总结
搭完这套系统之后,我家那台 RK3566 小主机总算是从"吃灰存储机"变成了"正经干活的设备"。
Hermes 在 NAS 上跑着,24 小时不掉线,配合 DeepSeek 模型基本能覆盖日常大部分文字需求。最实用的还是微信接入这个环节——出门在外想到什么事,直接微信发过去,回来的时候回复已经在等着了。这种"随手问一句、出门就有答案"的体验,是之前在网页后台里调用 AI 的时候没有过的。
安全方面也留了一手:加了 HttpAuth 认证,固定二级域名方便记忆的同时,公网入口有密码把着关,不用担心被陌生人扫到。
整体用下来感觉,这套方案最适合的场景就是——你家里有一台 24 小时开机的 NAS 或者小主机,想让它不只是存文件,而是变成一个真正能被用起来的私人 AI 助手。配置一次,后面长期跑着,微信随叫随到,这个状态是我目前用下来最接近"私人 AI 管家"这个说法的。
以上就是这次整理的全部内容,希望对你有所启发。如果有不同见解,欢迎在评论区交流讨论。
评论 (0)
暂无评论