多用户同时写入SMB共享文件冲突本质是缺乏协同机制,需分三层解决:预防冲突(改用在线协作文档或模块化拆分文件)、识别类型(启用Oplock、清理~$/.lock临时文件)、快速恢复(统一凭据、启用版本化工作流)。
多用户同时写入 smb 共享文件时出现冲突,本质不是 smb 协议“不支持并发”,而是缺乏协同机制——smb 本身只提供底层文件访问通道,不内置版本管理或合并逻辑。真正起作用的是上层应用(如 office)、服务端配置(如 oplock)和协作策略。解决方向要分三层:预防冲突、识别类型、快速恢复。
用协作型工具替代单文件直写
直接多人打开同一个 Excel 或 Word 文件编辑,是冲突高发场景。Office 虽有简单锁定提示,但仅依赖 SMB 的 Oplock,一旦服务端未启用或网络抖动,就会失效。
- 改用在线协作文档(如腾讯文档、飞书多维表格、SharePoint Online),它们在服务端实时合并编辑流,自动处理光标、段落、单元格级冲突
- 若必须用本地 Office,将文件拆分为模块化结构:例如“客户信息.xlsx”只由 A 维护,“报价单.xlsx”由 B 维护,避免交叉修改同一文件
- 对数据库类资料,改用轻量级共享数据库(如 Airtable、Notion 数据库),天然支持多用户并发写入与权限隔离
启用并验证 SMB 机会锁定(Oplock)
Oplock 是 Windows 和主流 NAS 实现“假性实时协作”的基础。它让客户端缓存文件状态,并在他人试图编辑时主动通知——没有它,Office 就无法可靠判断“谁正在编辑”,导致保存失败或覆盖。
- Synology DSM:控制面板 → 文件服务 → SMB/AFP/NFS → 勾选“启用机会锁定”
- QNAP QTS:控制台 → 网络 & 文件服务 → SMB 服务 → 开启“Opportunistic Locking”
- Windows Server:PowerShell 管理员运行 Set-SmbServerConfiguration -EnableOplocks $true -Force
- 启用后务必重启 SMB 服务或设备,再用另一台电脑测试打开/编辑/保存流程是否顺畅
清理残留锁定文件 + 统一凭据访问
很多“被锁定”提示其实是假象:前一个用户异常退出后,Office 在共享目录下留下的 ~$Report.xlsx 或 .~lock.Report.xlsx# 文件仍在广播“占用中”信号。
- 进入 SMB 共享路径(如 \NASDocs),开启“显示隐藏的项目”,手动删除所有以 ~$ 开头或含 .lock、.~lock 的文件
- 避免混用不同账户访问同一共享:Windows 不允许同一 IP 多次用不同用户名连接。统一使用一个协作账号(如 team-edit),并在所有客户端的凭据管理器中删掉旧记录
- 若用 Guest 访问,确认 Windows 组策略已启用“来宾访问”(gpedit.msc → 计算机配置 → 管理模板 → 网络 → Lanman 工作站 → 启用不安全的来宾登录)
对结构化数据启用版本化工作流
如果是多人录入表格、日志、清单等结构化内容,不推荐共用单个 Excel,而应转向带版本和审计能力的方案:
- 用 Excel + SharePoint:上传到 SharePoint 文档库,启用“要求签出文件”和“版本历史”,每次保存自动生成版本快照
- 用 CSV + Git 仓库(如 Gitea 自建):配合简单脚本做每日自动合并,冲突时人工比对三路差异(base/head/remote)
- 部署低代码表单(如简道云、明道云):设置字段级权限、提交审批流、操作留痕,从源头规避覆盖风险


















