在使用群晖 NAS 部署 Syncthing 进行文件同步时,随着同步文件数量的增加,你可能会在 Syncthing 的网页控制台中看到一个醒目的黄色警告:
为什么会出现这个错误?
这个错误的原因在于群晖 Linux 底层系统默认的 inotify(文件系统监视器)数量限制设置得太低了(通常默认只有 8192)。当 Syncthing 需要实时监控的文件和文件夹总数超过这个数字时,就会报错,并失去“实时监控文件变动”的能力,只能依靠定时扫描来发现文件更改,大大降低了同步效率。
要彻底修复这个问题,并且保证 NAS 重启后依然生效,最好的方法是通过群晖自带的任务计划,在开机时自动修改该限制。
以下是详细的操作步骤(以 DSM 7.2.2 为例,同样适用于使用 RR 引导的黑群晖)。
🛠️ 详细修复教程
第一步:打开任务计划并创建“触发的任务”
- 登录到你的群晖 DSM 网页后台。
- 打开 控制面板 -> 任务计划。
- 点击左上角的 新增 按钮。
- ⚠️ 注意避坑:在下拉菜单中,不要选择“计划的任务”(那是按固定日期时间运行的)。请往下看,选择 触发的任务 -> 用户定义的脚本。
第二步:设置常规选项(关键步骤)
在弹出的“编辑任务”窗口中,停留在 常规 标签页,按以下要求设置:
- 任务名称:随便填,便于识别即可,例如填写
Syncthing inotify limits fix。 - 用户账号:下拉选择
root。(⚠️ 修改系统底层参数必须拥有最高权限,这一步非常关键)。 - 事件:下拉选择 开机 (Boot-up)。
先行任务:保持空白,什么都不选!
- (💡 提示:如果你使用的是 RR 引导的黑群晖,下拉菜单里可能会看到
RunRrUpdate、MountLoaderDisk等选项。这些是引导程序自带的系统底层任务,我们修改 Syncthing 限制的任务独立运行即可,完全不需要依赖它们。)
- (💡 提示:如果你使用的是 RR 引导的黑群晖,下拉菜单里可能会看到
- 确保左下角的 已启用 处于勾选状态。

第三步:填写核心修复脚本
切换到顶部的 任务设置 标签页。在下方的“用户定义的脚本” (User-defined script) 输入框中,复制并粘贴以下两行代码:
sleep 60
sysctl -w fs.inotify.max_user_watches=204800代码原理解释:
sleep 60:让脚本在开机后强制等待 60 秒再执行。这是为了防止群晖开机自检时把修改的值又覆盖回默认值,确保我们的修改能在系统完全启动后生效。204800:这是我们设置的新监视器上限,可以支持监控大约 20 万个目录/文件,对于绝大多数家庭和中小型团队用户来说绰绰有余。如果你的同步文件达到了百万级别,可以将此数值改为524288。
点击 确定 保存该任务。此时系统可能会弹出一个关于 root 权限运行脚本的安全警告,点击确认即可。
第四步:免重启立即生效
设置好开机任务后,不用真的去重启 NAS。我们只需手动运行一次即可立即生效:
- 在“任务计划”的列表中,找到你刚刚创建的
Syncthing inotify limits fix任务。 - 鼠标单击选中它(整行背景变色)。
- 点击上方菜单栏的 运行 按钮。
✅ 验证修复结果
返回你的 Syncthing 网页控制面板。系统通常会在一两分钟内重新尝试加载监视器,一旦加载成功,那个烦人的黄色警告提示就会自动消失。
如果警告没有立刻消失,你可以尝试点击 Syncthing 界面右上角的 操作 -> 重启。重启后 Syncthing 就能完美恢复“实时监控”功能了!