之前说了SMB打开后也无法访问,
https://club.fnnas.com/forum.php?mod=viewthread&tid=62749
于是和Claude反应,ssh登录进去一步一步排查,终于修复了。
总结如下,希望能给大家有所借鉴。
核心 bug:Web 面板上的 SMB 设置没有写入 Samba 配置文件
具体来说,fnOS 的设计本来应该是这样工作的:
- 你在面板里创建团队文件夹 + 勾选**"允许通过 SMB/WebDAV/FTP 挂载"**
- fnOS 后端把这个意图翻译成 Samba 的共享段,写入
/etc/samba/users/<uid>.share.conf(这是它原本的设计——smb.conf 里有 include = /etc/samba/users/%Y.share.conf 这一行就是为此准备的)
- Samba 重启后自动加载,SMB 共享就生效
但实际发生的事情是:
/etc/samba/users/ 这个目录根本不存在
%Y.share.conf 这个文件从未被生成过
- 你在面板里设置的"团队文件 = 全部允许"完全没产生任何效果
- 唯一被正确写入
smb.custom.conf 的,只有 Time Machine 那一个共享段
结论:fnOS 的"团队文件 SMB 共享"功能在你这个版本上没有正确实现配置写入,是个明显的功能缺陷。Samba 服务本身工作正常,发现机制(mDNS)也正常,密码认证也正常——纯粹是上层管理面板没把用户意图变成实际配置。
排查过程的逻辑
复盘一下我们是怎么一步步定位的:
- 第一步
smb.conf 看到 include = users/%Y.share.conf → 推测 fnOS 用按用户分文件的配置机制
ls /etc/samba/users/ 报不存在 → 这个机制根本没启动
testparm -s 只展开出 [TimeMachine] → 确认实际生效的共享只有一个
- 面板里看到"可见文件夹范围 = 全部允许" → 面板状态和实际配置不一致
- 修改面板设置后
smb.custom.conf 时间戳变了但内容没变 → fnOS 写文件了但没写共享段,确认是 bug
smbclient -L localhost 本机看也只有 TimeMachine → 排除 macOS 客户端因素,确诊是服务端问题
临时方案的代价
我们手动改 smb.custom.conf 加共享段,绕过了 fnOS 面板。这能用,但有几个隐患你要记着:
- 下次面板改 SMB 设置可能覆盖你的手工配置——所以备份很重要
- 新增团队文件夹/我的文件子文件夹时,面板不会自动加 SMB 共享——需要你手动追加配置段
- fnOS 升级时不保证
smb.custom.conf 不被改写——升级后建议立刻检查共享是否还在
总结一句话就是:fnOS 的管理面板和底层 Samba 配置之间的"翻译层"没工作——你在 UI 上做的所有 SMB 设置都只是停留在面板状态里,没有真正落到 /etc/samba/ 下的配置文件,所以 SMB 服务自然不知道该共享什么。