<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>群晖 on 魔都水滴</title>
    <link>https://blog.margrop.net/tag/%E7%BE%A4%E6%99%96/</link>
    <description>Recent content in 群晖 on 魔都水滴</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>zh-CN</language>
    <lastBuildDate>Wed, 15 Jul 2026 19:30:00 +0800</lastBuildDate>
    <atom:link href="https://blog.margrop.net/tag/%E7%BE%A4%E6%99%96/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Docker 拉不动别急着换 DNS：国内镜像加速源挑选、配置与避坑全指南</title>
      <link>https://blog.margrop.net/post/docker-mirror-source-selection-guide/</link>
      <pubDate>Wed, 15 Jul 2026 19:30:00 +0800</pubDate>
      <guid>https://blog.margrop.net/post/docker-mirror-source-selection-guide/</guid>
      <description>先说结论&#xA;国内网络环境下，Docker 拉取镜像失败，往往不是镜像不存在，也不一定是 DNS 的锅。更常见的原因是：公共仓库的访问链路拥堵、某个加速源临时故障，或者配置文件改对了却没有重启 Docker。&#xA;我的建议是：先打开 status.anye.xyz，把它当作“镜像源天气预报”，看多个源最近是否可用；再根据自己的系统改对配置文件；改完先校验 JSON，再重启 Docker，最后用一个小镜像做真实拉取验证。&#xA;一、问题背景：为什么昨天能拉，今天就超时？ 很多人第一次遇到这个问题，是在部署一个很普通的服务：nginx、redis、postgres，或者 NAS 上的媒体服务。命令可能只有一句：&#xA;docker pull nginx:alpine 但终端却出现了超时、context deadline exceeded、TLS handshake timeout、connection reset by peer，甚至长时间停在下载层。换一个镜像标签、重启路由器、修改本地 DNS，有时能暂时恢复，于是大家容易得出一个结论：Docker 太玄学。&#xA;其实 Docker 拉镜像像是“从仓库借书”：&#xA;Docker 客户端先找到仓库地址； 再通过网络连接仓库； 仓库返回镜像清单； 客户端逐层下载内容； 最后校验每一层是否完整。 这条链路中任何一段堵住，都会表现为“拉不下来”。所以，镜像加速源不是魔法按钮，而是给这条路增加一条更顺畅的入口。&#xA;二、问题表现：不要只看网页能不能打开 一个镜像源网页能打开，不等于 Docker 一定能用。选择加速源时，至少要看四件事：&#xA;1. 地址是否真的可达 浏览器打开首页，只能证明首页响应了。Docker 还要访问 Registry API、鉴权接口和镜像层下载接口。网页正常、拉取失败，是完全可能的。&#xA;2. 是否支持完整的 Docker Hub 加速链路 有些地址只是一个网页代理或搜索页面，并不是 Docker Registry mirror。配置到 registry-mirrors 后，如果 docker info 看不到它，或者 docker pull 仍然直接访问默认仓库，就要怀疑它并非真正的加速服务。&#xA;3. 是否持续稳定，而不是刚好今天在线 镜像源很像城市道路：今天通车，不代表明天不施工。稳定性比某一次测速的峰值更重要。家用 NAS 可以接受偶尔切换，CI 构建和生产环境则应该准备备用方案。</description>
    </item>
    <item>
      <title>RAID 不是备份！群晖、飞牛、Unraid 到底怎么选，别等硬盘坏了才看懂</title>
      <link>https://blog.margrop.net/post/nas-raid-selection-guide/</link>
      <pubDate>Sat, 11 Jul 2026 12:00:00 +0800</pubDate>
      <guid>https://blog.margrop.net/post/nas-raid-selection-guide/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;先说结论&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;RAID 的主要任务，是在一块或几块硬盘故障时，让 NAS 尽量继续工作；备份的主要任务，是在文件被误删、被勒索软件加密、NAS 被偷、主板损坏或房屋发生意外后，把数据找回来。两者都重要，但绝不是一回事。&lt;/p&gt;&#xA;&lt;p&gt;如果你用群晖，家庭用户通常优先考虑 SHR-1，硬盘多、容量大且数据重要时考虑 SHR-2；如果你用飞牛 fnOS，应把“文件系统、存储模式、硬盘数量和备份位置”一起决定，而不是只看 RAID 名称；如果你用 Unraid，则要先理解它不是传统条带化 RAID：每块数据盘保留独立文件系统，校验盘负责故障恢复，混盘与扩容更灵活，但写入性能、校验规则和备份责任也完全不同。&lt;/p&gt;&#xA;&lt;p&gt;最简单的选择法是：&lt;strong&gt;两盘选镜像思路，三到五盘且容量优先选单盘冗余，六盘以上或单盘容量很大时认真考虑双盘冗余；不可重下的数据，无论选什么 RAID，都再做一份异地或离线备份。&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>密码没写错，群晖却不让登录？我拆开 DSM 的 RSA &#43; AES 双层信封，完整复刻 WebAPI 登录</title>
      <link>https://blog.margrop.net/post/synology-webapi-login-encryption-deep-dive/</link>
      <pubDate>Sat, 11 Jul 2026 08:30:00 +0800</pubDate>
      <guid>https://blog.margrop.net/post/synology-webapi-login-encryption-deep-dive/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;先说结论&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;群晖某些 WebAPI 登录请求并不是简单地把 &lt;code&gt;account&lt;/code&gt; 和 &lt;code&gt;passwd&lt;/code&gt; 直接提交给 &lt;code&gt;auth.cgi&lt;/code&gt;。OpenStack Cinder 的 Synology 驱动展示了一套完整兼容流程：先调用 &lt;code&gt;SYNO.API.Encryption.getinfo&lt;/code&gt;，取得 RSA 公钥、服务器时间和两个动态字段名；客户端生成一次性随机 passphrase，用 RSA 加密它，再用它派生 AES-256-CBC 的密钥和 IV，对 URL 编码后的登录参数加密，最后把两段 Base64 密文放入服务器指定的 &lt;code&gt;cipherkey&lt;/code&gt; 字段。&lt;/p&gt;&#xA;&lt;p&gt;但必须先划清边界：这是一种 &lt;strong&gt;WebAPI 身份认证兼容方式&lt;/strong&gt;，不是破解密码，也不是绕过权限；拿到 &lt;code&gt;session=DSM&lt;/code&gt; 的 API SID，也不等于凭空获得浏览器 DSM 管理页面的完整 Cookie 登录状态。HTTP 参数加密同样不能代替 HTTPS，因为 TLS 还负责服务器身份校验、完整性保护和抵抗中间人攻击。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;原创题图：RSA 与 AES 双层信封保护 NAS 登录&#34; src=&#34;https://blog.margrop.net/post-images/synology-webapi-login-encryption-deep-dive/00-cover-original.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>别再半夜抢遥控器了：用 DSM 计划任务给群晖儿童视频目录自动上锁</title>
      <link>https://blog.margrop.net/post/synology-kid-video-acl-curfew/</link>
      <pubDate>Sun, 05 Jul 2026 06:50:00 +0800</pubDate>
      <guid>https://blog.margrop.net/post/synology-kid-video-acl-curfew/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;先说结论&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;这次不是“禁用孩子账号”，而是只给群晖里的一个儿童视频目录定时上锁。做法是在 DSM 7.2.1 上准备一个 &lt;code&gt;kid_video_guard.sh&lt;/code&gt;，到点用 &lt;code&gt;synoacltool&lt;/code&gt; 给目标目录加一条临时 &lt;code&gt;deny&lt;/code&gt; ACL，开放时间再把这条 ACL 删除。账号、密码、家庭相册、作业目录都不动，只有“儿童视频”这个柜门到点关上。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;原创封面：NAS 上的儿童视频目录到点上锁&#34; src=&#34;https://blog.margrop.net/post-images/synology-kid-video-acl-curfew/00-ai-cover.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>群晖把我的 root 锁在门外三道，我花了二十分钟把它教会</title>
      <link>https://blog.margrop.net/post/synology-root-and-ssh-key/</link>
      <pubDate>Thu, 18 Jun 2026 16:30:00 +0800</pubDate>
      <guid>https://blog.margrop.net/post/synology-root-and-ssh-key/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR（先说结论）&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;群晖（Synology DSM）为了安全，默认把 SSH 关掉、还禁止 root 直接登录——这是好事，别骂它。这篇文章就是带你&amp;quot;按规矩&amp;quot;把门打开：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;控制面板 → 终端机和 SNMP → 启用 SSH&lt;/strong&gt;（把大门打开）&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;用普通账户登录 + &lt;code&gt;sudo -i&lt;/code&gt; 切到 root&lt;/strong&gt;（先去物业借钥匙）&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;修改 &lt;code&gt;/etc/ssh/sshd_config&lt;/code&gt; 里 &lt;code&gt;PermitRootLogin yes&lt;/code&gt;&lt;/strong&gt;（跟门卫说&amp;quot;root 是自己人&amp;quot;）&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;&lt;code&gt;synouser --setpw root xxx&lt;/code&gt; 设密码 + 把公钥写到 &lt;code&gt;~/.ssh/authorized_keys&lt;/code&gt;&lt;/strong&gt;（换一把永远不会丢的钥匙）&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;全程大约二十分钟，比想象简单。我会把每一步都用&amp;quot;钥匙和锁&amp;quot;的比喻讲清楚，再附上 vi 编辑器三秒钟入门、常见报错和 Q&amp;amp;A。&lt;/p&gt;&#xA;&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>把「该睡觉了」搬出客厅：让 mac 的 launchd 每天 22:00 自动停用群晖孩子的账号，08:00 再悄悄启用</title>
      <link>https://blog.margrop.net/post/synology-mykid-curfew-launchd/</link>
      <pubDate>Sun, 14 Jun 2026 08:20:00 +0800</pubDate>
      <guid>https://blog.margrop.net/post/synology-mykid-curfew-launchd/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;先说结论&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;群晖 DSM 控制台里其实有一个&amp;quot;停用账号&amp;quot;按钮，但它不会自动按时执行。借助 mac 自带的 &lt;code&gt;launchd&lt;/code&gt; 加一段 50 行的 &lt;code&gt;bash&lt;/code&gt; 脚本，可以做到：每天 22:00 把孩子的两个本地账号 &lt;code&gt;expired&lt;/code&gt; 标志置位，08:00 再恢复。脚本自带&amp;quot;改前查询 → 改 → 改后查询&amp;quot;的三步校验，任何一步对不上号立刻 &lt;code&gt;exit 1&lt;/code&gt;，launchd 会把执行日志写进 &lt;code&gt;StandardOutPath/StandardErrorPath&lt;/code&gt;。整件事的特别之处是**&amp;ldquo;家长&amp;quot;两个字被从对话里拿掉了**——你不用每天喊&amp;quot;该睡了&amp;rdquo;，机器会准时替你做。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;本文不打算讲一个大而全的家庭 NAS 管理方案，只围绕一件具体的事：让一个原本靠&amp;quot;人记得点&amp;quot;的操作，变成&amp;quot;到了点就自动发生&amp;quot;的纯系统级动作。&lt;/p&gt;&#xA;&lt;p&gt;如果你只想先看图，第二节那张「晚 10 点断电 / 早 8 点复电」的总览图就够了。&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;晚 10 点准时&amp;quot;断网&amp;quot;，早 8 点自动&amp;quot;复电&amp;quot;&#34; src=&#34;https://blog.margrop.net/post-images/synology-mykid-curfew-launchd/05-curfew-overview.svg&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>给 OpenClaw / HermesAgent 集成群晖操作 SKILL：从一句话到可审计的 NAS 自动化</title>
      <link>https://blog.margrop.net/post/openclaw-hermesagent-synology-skill/</link>
      <pubDate>Tue, 05 May 2026 12:20:00 +0800</pubDate>
      <guid>https://blog.margrop.net/post/openclaw-hermesagent-synology-skill/</guid>
      <description>&lt;p&gt;我之前已经整理过两篇偏“命令手册”风格的群晖文章：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://blog.margrop.net/post/synology-ssh-commands/&#34;&gt;Synology 群晖 SSH 命令详解&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://blog.margrop.net/post/synology-diskstation-cli-administration-guide/&#34;&gt;群晖 NAS CLI 管理指南&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;这两篇文章解决的是“人知道有哪些命令可以用”的问题。本文想解决另一个更实际的问题：如果我已经在使用 OpenClaw / HermesAgent 这类 Agent 工具，能不能把这些群晖命令沉淀成一个操作 SKILL，让我以后用一句话就能让 Agent 帮我检查 NAS、整理状态、生成操作计划，甚至在确认后执行一些维护命令？&lt;/p&gt;&#xA;&lt;p&gt;我的答案是：可以，但不应该把它做成“Agent 拿到 root 权限以后随便跑”。正确的集成方式应该是：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;让群晖 SSH 访问可控、可验证、可撤销。&lt;/li&gt;&#xA;&lt;li&gt;把常用群晖 CLI 操作写进 SKILL，让 Agent 知道可用命令、风险分级和输出格式。&lt;/li&gt;&#xA;&lt;li&gt;默认只允许只读诊断命令自动执行。&lt;/li&gt;&#xA;&lt;li&gt;对重启服务、修改权限、改用户、改网络、删除文件、存储相关操作设置确认门禁。&lt;/li&gt;&#xA;&lt;li&gt;每次执行后保留命令、输出和结论，方便回看和追责。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;如果你只想快速理解整篇文章，看下面这张图就够了。&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;OpenClaw / HermesAgent 集成群晖操作 SKILL 总览&#34; src=&#34;https://blog.margrop.net/post-images/openclaw-hermesagent-synology-skill/01-overview-handdrawn.svg&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>【转】群晖NAS CLI管理指南</title>
      <link>https://blog.margrop.net/post/synology-diskstation-cli-administration-guide/</link>
      <pubDate>Thu, 30 Apr 2026 18:20:04 +0800</pubDate>
      <guid>https://blog.margrop.net/post/synology-diskstation-cli-administration-guide/</guid>
      <description>&lt;p&gt;本文档包含命令行工具，使应用程序能够利用群晖DiskStation上的资源，同时包含群晖错误代码参考列表。&lt;/p&gt;</description>
    </item>
    <item>
      <title>【转】Synology DiskStation Administration CLI Guide 官方文档导读与命令速查</title>
      <link>https://blog.margrop.net/post/zhuan-synology-diskstation-administration-cli-guide/</link>
      <pubDate>Thu, 30 Apr 2026 18:14:05 +0800</pubDate>
      <guid>https://blog.margrop.net/post/zhuan-synology-diskstation-administration-cli-guide/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;先说结论&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Synology 这份官方 CLI 管理指南并不是一本面向普通 DSM 图形界面用户的入门手册，而是一份给脚本、自动化和系统集成场景准备的命令参考。它覆盖了 DSM 中最常见的几类管理动作：本地用户、本地群组、共享文件夹、网络配置、服务控制、工作组或 ADS 域设置，以及错误码查询。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;这篇文章是基于 Synology 官方 PDF《CLI Administrator Guide for Synology NAS》整理的中文导读和命令速查。由于原 PDF 属于 Synology 官方版权文档，本文不会全文复制或逐段翻译原文，而是按博客阅读习惯重新组织成一份便于检索、理解和日常运维使用的双语整理稿。需要逐字核对参数定义、版本差异或法律声明时，请直接阅读文末的官方 PDF 来源。&lt;/p&gt;</description>
    </item>
    <item>
      <title>【转】Synology群晖ssh命令详解</title>
      <link>https://blog.margrop.net/post/synology-ssh-commands/</link>
      <pubDate>Thu, 30 Apr 2026 10:00:00 +0800</pubDate>
      <guid>https://blog.margrop.net/post/synology-ssh-commands/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;注意：SSH运行以下命令可能会损毁你的系统/硬盘，如不清楚具体含义请不要随意执行！！！&lt;/p&gt;&#xA;&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>Let&#39;&#39;s Encrypt自动续期后自动同步Proxmox VE和DSM证书</title>
      <link>https://blog.margrop.net/post/lets-encrypt-sync-https-cert-to-pve-and-dsm/</link>
      <pubDate>Tue, 02 Feb 2021 19:19:38 +0800</pubDate>
      <guid>https://blog.margrop.net/post/lets-encrypt-sync-https-cert-to-pve-and-dsm/</guid>
      <description>&lt;p&gt;上次我们讲了&lt;a href=&#34;https://blog.margrop.net/post/lets-encrypt-use-dns-txt-acme-challenge-domain-available/&#34;&gt;Let&amp;rsquo;s Encrypt通过DNS TXT记录来验证域名有效性&lt;/a&gt;，其中文章最后写了，如何使用&lt;code&gt;certbot renew&lt;/code&gt;进行自动续期。那自动续期成功了，如何同步到&lt;code&gt;PVE&lt;/code&gt;和&lt;code&gt;DSM&lt;/code&gt;呢？&lt;/p&gt;</description>
    </item>
    <item>
      <title>如何使用群晖（DSM）运行N2N-编译篇</title>
      <link>https://blog.margrop.net/post/how-to-use-n2n-dsm/</link>
      <pubDate>Fri, 15 Jan 2021 13:18:07 +0800</pubDate>
      <guid>https://blog.margrop.net/post/how-to-use-n2n-dsm/</guid>
      <description>&lt;p&gt;群晖（后面使用&lt;code&gt;DSM&lt;/code&gt;代替）是一个目前最著名的&lt;code&gt;NAS&lt;/code&gt;系统，没有之一。&#xA;如何在&lt;code&gt;DSM&lt;/code&gt;上直接运行&lt;code&gt;N2N&lt;/code&gt;呢，当然又需要交叉编译了😂。&#xA;下面的交叉编译操作，需要有&lt;code&gt;Linux&lt;/code&gt;的基本功，和&lt;code&gt;vim&lt;/code&gt;操作的基本功。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
