现在越来越多爱好者会把 AI Agent 部署在家用 NAS 设备上运行,本地部署不仅可以自主把控数据,还能够实现 7×24 小时持续执行各类自动化任务,体验十分不错。但本地部署也会遇到一个很现实的痛点:AI Agent 运行在家庭内网环境,离开家里网络之后,就无法便捷访问管理面板。
日常出差、外出的时候,如果想要调整模型配置、查看 Agent 运行日志、确认任务执行状态,传统的方案大多要配置 VPN、做端口映射,不仅操作门槛高,盲目做端口暴露还会带来不小的网络安全风险。
我在飞牛 NAS 上部署 Hermes Agent 之后,同样遇到了远程管理的难题,经过实际测试对比,尝试使用ZeroNews内网穿透的方案来解决外网访问的需求。本文完整记录实操全过程,从容器部署 Hermes,到配置穿透隧道实现公网 HTTPS 访问,把整个踩坑与落地的过程分享出来,给同样想本地部署 AI Agent、又有远程管理需求的朋友做一份参考。
在飞牛上把 Hermes Agent + Hermes-Web-UI 跑起来
在飞牛上我们以 docker-compose 方式部署一键 Hermes Agent + Hermes-Web-UI
以 docker-compose 方式 部署的脚步内容
可以直接复制以下 docker-compose.yml 部署脚本内容
services:
hermes:
image: ekkoye8888/hermes-web-ui:latest
container_name: hermes-webui
restart: unless-stopped
ports:
- "6060:6060"
- "8651:8651"
- "56121:56121"
volumes:
- ./hermes_data:/home/agent/.hermes
- ./hermes_data/hermes-web-ui:/home/agent/.hermes-web-ui
environment:
PORT: "6060"
HERMES_HOME: /home/agent/.hermes
HERMES_BIN: /opt/hermes/.venv/bin/hermes
HERMES_WEB_UI_XAI_CALLBACK_BIND_HOST: 0.0.0.0
HERMES_ALLOW_ROOT_GATEWAY: "1"
几个配置顺便解释一下:
- ./hermes_data 是相对路径,跟着 yml 文件走,不用写死绝对路径
- 6060:6060,浏览器访问 hermes-web-ui 的本地端口号
部署 Hermes 容器
打开飞牛的 Docker → Compose

点击新建项目 新增项目, 输入项目名,如 hermes
点击路径,新建一个文件夹,如 hermes 文件夹,然后选择新增的 hermes 文件夹,再确认



来源选择 创建 docker-compose.yml, 将上面的 docker-compose.yml 内容直接粘贴进来,并勾选创建项目后立即启动

然后点击确认,等 Hermes 镜像拉完,看 hermes-agent 和 hermes-webui 是不是都绿的(运行中)

先在局域网里试试
浏览器打开:http://<飞牛内网IP>:6060 ,先用默认账号密码登录,默认登录名:admin,默认密码:123456, 登录后记得修改密码

第一次登录成功后,默认是没有配置大模型的,这时候发起对话,会提示异常

所以我们需要先配置大模型,在模型配置页面,点击 添加 Provider

我选用的 DeepSeek 的 v4-flash 模型,输入 API Key,点击添加


大模型添加完成后,再回到 对话 界面,与 Hermes 对话一次,这时候就能正常交流了

Hermes-Web-UI 内网访问正常后,接下来就安装 ZeroNews 完成 Hermes-Web-UI 映射配置
安装 ZeroNews 客户端
本地能访问了,接下来装 ZeroNews,准备把 Hermes-Web-UI 面板映射出去。
复制 Token
先登录 ZeroNews控制台

复制 快速开始 的 AuthToken , Token 是多设备共用一个

飞牛中安装 ZeroNews 客户端
打开飞牛的应用中,搜索 zeronews 应用,然后点击安装即可,点击一下步直到安装完成


ZeroNews 安装完成后,点击打开,会弹出 ZeroNews 的token 绑定界面,粘贴在ZeroNews控制台的 Token ,然后点击 绑定即可


绑定完成后,客户端状态显示 在线

同时在 ZeroNews 控制台的客户端界面,可以查看刚上线的飞牛客户端

给 Hermes Web UI 加个公网 隧道
先 给 Hermes Web UI 分配一个好记忆的 域名
ZeroNews 控制台 → 自定义域名 → 添加域名

在子域名输入框中,输入一个好记忆的名称,如 hermesweb, 然后点击域名可用性检测,会在下放显示出可以选择的域名,然后选中一个就行,最后点击提交,完成域名添加


然后给 Hermes-Web-UI 添加公网隧道
进 隧道管理 页面 → 添加 隧道

- 隧道协议, 默认HTTPS 就行
- 带宽, 4M带宽,也可以分配多一些带宽
- 公网域名, 选择自定义域名,再选择刚创建好的 hermesweb 域名
- 绑定设备选择 fnos 客户端, 内网端口输入 hermes-web-ui 的端口号 6060


隧道添加完成后,就可以通过公网访问了
收尾
这套方案的优势很实在:不需要固定公网 IP,家庭宽带就能用;不需要在路由器上做任何配置,对网络环境零要求;HTTPS 证书由平台自动签发和续期,不用自己维护 Nginx 和证书;只暴露 Web UI 的 6060 端口,不是把整台 NAS 扔到公网上,安全边界清晰。
当然,安全这根弦不能松。Web UI 本身有账号密码,但公网暴露场景下,建议再叠加平台提供的访问控制策略 ------IP 白名单、地址围栏、BasicAuth,根据自己的使用场景选配上,进一步缩小可访问范围。
如果你也有类似的需求 ------ 不管是 AI Agent、管理面板,还是其他跑在内网里的服务,都可以参考这套 "容器化部署 + 内网穿透 + HTTPS 隧道" 的思路,用最小的运维成本,解决跨网络访问的实际问题。