joy-cli/docs/ops/nas.md
feibisi b7fecf7ab0 feat(web): NAS 硬件卡 SSH 探测 + 布局对齐其它主机
采集 Terminal API 与 BatchMode 公钥探测,硬件 tab 主卡精简(IP 常显、
DSM 版本进机身详情),明细用 hwFold;文档同步 SSH 已通与修复入口。
2026-07-10 21:25:50 +08:00

9.8 KiB
Raw Permalink Blame History

NAS 完整手册DS224+ · feibisi-NAS

更新2026-07-10
范围设备档案、挂载、DSM API、joy web 硬件采集、SSH、安全与排障
凭据: ~/.config/nas/dsm.envchmod 600禁止进 git / HANDOFF 明文


0. 一分钟速览

型号 / 主机名 Synology DS224+ / feibisi-NAS
LAN 192.168.1.188eth0 1Geth1 未接)
DSM 7.3.2-86009 Update 4 · Web https://192.168.1.188:5001
存储 2× WD80EFPX 8TB · RAID1 · volume1 btrfs · ~7.0T / 用约 37%
协作真源 shared-context → Mac NFS ~/mnt/shared-context · VM NFS /mnt/shared-context
joy 机身观测 collect_nas_dsmdashboard.infra.nas.dsm硬件 → NAS
账号(观测) linuxjoyadministrators 组成员;描述:麟悦 Linux 备份专用)
SSH 入站 已通2026-07-10ssh nas;运维见 linuxjoy docs/ops/nas-ssh.md · scripts/mac/nas-ssh.sh

角色心智NAS = 飞轮粮仓与驿道(硬件 tab不是神州公网站、不是神兽 VM。


1. 网络与服务面

                    ┌─────────────────────────┐
  Mac / VMs  NFS ──►│  DS224+  192.168.1.188  │
  Mac SMB    ──────►│  volume1 (btrfs RAID1)  │
  DSM HTTPS  ──────►│  :5001  DSM + API       │
  SSH :22    ──────►│  enable_ssh=true        │  ← ssh nas OK密钥 600 / 无 ACL
                    └─────────────────────────┘
                              │ USB
                              ▼
                           APC UPS
服务 状态(实测)
NFS 已开v4 minor 未开Mac/内网有会话
SMB/CIFS 可用homes / Download / shared-context 可 mount_smbfs
DSM Web/API
SSH 已通ssh nas);故障剧本见 §5
套件 ContainerManager、ActiveBackup、Snapshot、Drive、Git… 等 running

共享文件夹11

共享 用途(简)
shared-context VM/Mac 集群协作主卷Board、信号、报告…
homes 用户家目录(含 linuxjoy/.ssh
docker ContainerManager
ActiveBackupforBusiness 主动备份
Download 下载 / forgejo 备份脚本等
iCloudPhotos / music / photo / video / web / web_packages 默认或媒体/Web

2. 挂载(内容面)

2.1 Mac当前生产形态

192.168.1.188:/volume1/shared-context  →  ~/mnt/shared-context   (NFS)

备用 SMB文档历史

mount -t smbfs //linuxjoy@192.168.1.188/shared-context ~/mnt/shared-context

homes / Download 排障用(会话中曾用):

# 密码 URL 编码后 mount_smbfs
mount_smbfs "//linuxjoy:<urlencoded-pass>@192.168.1.188/homes" ~/mnt/nas-homes
mount_smbfs "//linuxjoy:<urlencoded-pass>@192.168.1.188/Download" ~/mnt/nas-download

2.2 VM

192.168.1.188:/volume1/shared-context /mnt/shared-context nfs rsize=8192,wsize=8192,timeo=14,intr,nofail,x-systemd.automount 0 0

必须 nofail + automount避免 NAS 短暂不可达拖死开机。

2.3 joy 已有挂载探测

  • collect_infradevops 上 /mnt/shared-context 是否真挂载(过滤 rpc_pipefs 假阳性)
  • collect_mac_hostMac 侧 dfnas_pct / nas_used / nas_total
  • 硬件 NAS挂载三角mac_ok / devops_ok+ 写探针建议

3. DSM API 与 joy 采集(机身面)

3.1 凭据

# ~/.config/nas/dsm.env  (chmod 600)
NAS_HOST=192.168.1.188
NAS_USER=linuxjoy
NAS_PASS=********
NAS_PORT_HTTPS=5001

sid 缓存:~/.config/nas/dsm.sid(登录成功后自动写)。

3.2 代码入口

组件 路径
采集 joy-cli/src/joy/dashboard/nas_dsm.pycollect_nas_dsm()
合并 collect.pyinfra.nas.dsm
UI joy-cli/src/joy/web/js/tabs/hardware.js → section 硬件 → NAS
摸底笔记 nas-dsm-observe.md

3.3 字段(infra.nas.dsm

硬件 tab 在机身卡上展示:卷 / 挂载 / 温度 / 健康 / 盘 / 池 / 网 / 会话 / SSH / UPS
2026-07-10 起增加:

字段 含义
terminal.enable_ssh / ssh_port DSM Terminal API
ssh.ok / ssh.target Mac ssh nas BatchMode 公钥探测

复发告警文案指向 linuxjoy/scripts/mac/nas-ssh.sh fix

3.3.1 字段明细(摘要)

ok, host, model, hostname, dsm_ver, sys_temp_c, temp_warn, uptime,
cpu.{series,cores,load_1m/5m/15m}, mem_pct,
pool.{raid,status,disks[]},
volume.{path,fs,used_gb,total_gb,used_pct,status},
disks[].{name,model,temp_c,smart_status,status,size_gb,serial},
eth0.{ip,speed,status},
ups_usb, fan_mode, nfs_enabled, shares_n,
connections.{total,nfs,http},
terminal.{enable_ssh,enable_telnet,ssh_port},
ssh.{ok,target,error},
health_ok, attention[]

实现细节:

  • 使用 curl -skentry.cgiPython urllib 对本机 DSM TLS 偶发 EOF
  • 无凭据 / 登录失败 → 降级为挂载 df并仍做 SSH 探测
  • 密码永不进入 dashboard JSON
  • SSH 探测:ssh -o BatchMode=yes nas echo OK(约 4s 超时)

3.4 硬件 UI 展示

  • 卷用量DSM 优先Mac df 兜底)
  • 挂载通道 mac/devops
  • 系统温度 / 健康 / 内存 / load
  • 双盘温度 + SMART
  • SSH(服务开关 + 公钥探测 ✓/✕)
  • RAID、网卡、会话数、UPS USB、NFS
  • 告警SMART 非 normal、温度高、挂载断、卷 ≥75% 等

4. 内容面建议(未全做自动 du

层级 做什么 频率
L0 机身 DSM API已落地 15 min
L1 通道 挂载 + 连接数 + write 探针 同轮
L2 内容 白名单目录 entry 数 / 日 du 缓存 日更;禁止每轮全盘扫

协作相关目录(shared-context 下,浅层探测曾成功):
board · ai-context · backups · reports · alerts · audit · signals · vm-control · secrets只报存在性,不读内容


5. SSH已打通 · 2026-07-10

5.1 日常

ssh nas 'hostname'   # → feibisi-NAS
# linuxjoy 仓库运维入口(权威)
bash ~/Projects/linuxjoy/scripts/mac/nas-ssh.sh check
bash ~/Projects/linuxjoy/scripts/mac/nas-ssh.sh fix     # 再挂时
# 手册
#   linuxjoy docs/ops/nas-ssh.md
#   linuxjoy docs/ops/nas.md

5.2 客户端Mac

~/.ssh/config Host nas / feibisi-nas / ds224linuxjoy@192.168.1.188,密钥
id_ed25519 + nas_linuxjoy_ed25519。DSM enable_ssh=true 端口 22。

5.3 根因(历史)

authorized_keys 曾为 ACL + mode 0777 → OpenSSH 丢弃全部公钥;且 PasswordAuthentication no
不是「没开 SSH / 漏加公钥」。SMB 写 .ssh 易再次打坏权限FileStation Upload 常 error 119

5.4 修复固化

组件 位置
Mac 入口 linuxjoy/scripts/mac/nas-ssh.sh
root 脚本 NAS /volume1/Download/joy-fix-ssh-v2.sh(源:linuxjoy/scripts/nas/joy-fix-ssh.sh
root 任务 DSM joy-ssh-rootfix(默认 disabled手动 fix
日志 /volume1/Download/joy-ssh-fix.log
集群记忆 cluster-recall #4744lesson#4745config

期望权限:.ssh 700authorized_keys 600,无 ACLsynoacltool → Linux mode

5.5 复发时

  1. bash .../nas-ssh.sh check
  2. 失败则 fixdeploy + root 任务 + 复查)
  3. 勿用访达盲写 authorized_keys;改密钥用 ssh nas / ssh-copy-id
  4. 可选 nas-ssh.sh harden 关闭密码登录

6. 备份与其它路径

路径/任务 说明
/volume1/Download/backups/forgejo/pull-backup.sh NAS 上定时拉 Forgejo 备份(用户 linuxjoy 脚本任务 id=8
linuxjoy home vm-backups / disaster-recovery 备份相关目录
SnapshotReplication 共享文件夹快照(含 shared-context
ActiveBackup 业务备份套件

kk-pc 二级备份见 linuxjoy backup-to-kkpc / ops 文档;不替代 NAS 本体健康。


7. 安全

  1. 聊天中曾出现过密码 → 建议 DSM 修改 linuxjoy 密码,并更新 ~/.config/nas/dsm.env
  2. 观测账号尽量保持:能读监控 + FileStation;写操作仅排障
  3. 禁止把 dsm.env、authorized_keys 私钥、secrets/ 内容提交 git
  4. SSH 打通后优先 公钥;不要对公网开密码 SSH
  5. joy dashboard 只读NAS 变更在 DSM

8. 相关文档索引

文档 内容
本文 nas.md 总手册
nas-dsm-observe.md API 摸底与字段草案
linuxjoy docs/setup/quick-rebuild.md §8 VM NFS fstab
linuxjoy docs/infrastructure/nas-device-profile.md 设备档案
linuxjoy docs/ops/nas-ssh.md / nas.md SSH 运维权威 + 总览
linuxjoy scripts/mac/nas-ssh.sh check / fix / harden
linuxjoy docs/ops/ops-quickref.md 挂载丢失 + SSH 速查
joy-shenzhou.md 神州(公网生产)≠ NAS 粮仓

9. 验收清单

  • DSM API 可登录,机身字段可采
  • joy 硬件 NAS 展示 L0f6d5b06 起)
  • Mac Host nas SSH config + 公钥写入 authorized_keys
  • ssh nas 成功2026-07-10清 ACL + chmod 600 + sshd 重启)
  • 密码轮换 + 可选只读监控用户
  • 可选L1 写探针 + L2 白名单目录体积日更
  • (可选)nas-ssh.sh harden 关密码登录docker.sock 授权策略

SSH 与 DSM API 双通道可用;硬件面板走 collect_nas_dsm(机身)+ SSH 探测(运维通道);写操作不进 joy。