NAS 接入与资源遥测
本文定义 nas-sz 在 AgentMeshOS 中的当前边界。NAS 是用户自有存储资源与独立遥测节点,不是系统云盘后端,也不加入 Nomad 调度。
📌 结论摘要
NAS 继续独立于生产 Runtime、Nomad 和 Cloudreve 系统云盘后端;管理面允许 RR、101、Home 三个同级入口直连,遥测面只绑定 Tailnet 地址并保持只读采集。NAS 不是系统云盘后端,也不加入 Nomad 调度。
🧩 当前定位
| 节点 | Tailnet IP | 管理身份 | 当前职责 | 明确不承担 |
|---|---|---|---|---|
nas-sz |
100.64.0.10 |
admin(UID 0) |
受限 SSH、Tailnet 连通性和只读资源遥测 | Cloudreve 后端、系统云盘数据面、Nomad Worker、自动挂载或业务写入 |
允许采集 CPU、内存、根磁盘、真实挂载点、网络速率与运行时间。浏览器只能经 Status 查看筛选后的摘要,不获得共享路径、账号、Token、证书或文件列表。
🔒 网络边界
RR、101 和 Home 是三个同级管理入口,三者均可直接管理 NAS。2026-09-30 已将 101 管理公钥加入 NAS,并从三个来源分别直连回读 SZ-YohanNAS;系统管理公钥不得用 from= 绑定 Tailnet 来源地址,继续禁止端口转发、Agent 转发和 X11 转发。QNAP 官方 Tailscale 客户端不支持 Exit Node;不得通过手改默认路由绕过该限制。
Tailnet 在 NAS 上只用于管理和遥测,不承载 Cloudreve 上传、下载或 WebDAV 数据面。系统云盘路径是客户端经 MM 公网 HTTPS 直接访问 dd 上的 Cloudreve。
📈 遥测
QNAP 使用已有 Docker Engine 运行官方 node_exporter,仅绑定 NAS Tailnet 地址 100.64.0.10:9100,不开放公网端口:
2026-09-30 已把采集容器的重启策略改为 always,并移除部署脚本中的全局 dangling 镜像清理;脚本只维护 agentmeshos-nas-node-metrics 容器,不再顺带删除其他对象。
curl -fsSL https://docs.yohan.fun/scripts/agentmeshos-nas-node-metrics-deploy.sh | sudo bash -s -- --check
curl -fsSL https://docs.yohan.fun/scripts/agentmeshos-nas-node-metrics-deploy.sh | sudo bash -s -- deploy
在 RR 采集端验证:
curl -fsS http://100.64.0.10:9100/metrics | grep '^node_cpu_seconds_total'
curl -fsS http://127.0.0.1:39120/api/status
tailscale ping 100.64.0.10
停止遥测仅删除采集容器,不退出 Tailnet,也不删除 NAS 数据:
curl -fsSL https://docs.yohan.fun/scripts/agentmeshos-nas-node-metrics-deploy.sh | sudo bash -s -- remove
任何把 NAS 共享接入业务的提案,必须单独评审访问协议、读写权限、容量、备份、恢复和撤销路径。
⚠️ 未决项 / 需要决策
| 未决项 | 当前事实 | 下一步 |
|---|---|---|
| NAS 共享业务接入 | 当前只用于用户自有共享资源和只读遥测 | 如要接入业务,必须另立计划评估协议、权限、备份与撤销路径 |