☰
从零构建Samba NAS:Sylve上的SMB共享、mDNS发现与审计日志实战
2026/10/15 14:18:46 网站建设 项目流程

【免费下载链接】Sylve

Lightweight GUI for managing Bhyve, Jails, ZFS, networking, and more on FreeBSD

项目地址:https://gitcode.com/gh_mirrors/sy/Sylve
点击查看免费下载

Sylve 是一款运行在 FreeBSD 上的轻量级开源基础设施管理平台,用浏览器界面统一管理 Bhyve 虚拟机、Jails、ZFS 存储与网络。本文带你从零构建一台 Samba NAS:在 Sylve 中几分钟内创建 SMB 共享、配置 mDNS 局域网发现,并开启 Samba 审计日志,让"谁在什么时候动了哪个文件"一目了然,全程几乎不需要手写配置文件。

为什么用 Sylve 搭 Samba NAS

传统方式下,配置一台 NAS 要手动编辑smb.conf、管理 ACL、盯着 syslog 找审计记录。Sylve 把这些工作收敛到三个页面:

  • Samba 设置:服务器身份、工作群组、接口绑定、Apple 扩展
  • 共享管理:把 ZFS 文件系统一键发布为 SMB 共享,并分配读/写权限
  • 审计日志:将 Samba 的文件操作事件解析入库,分页可查

后端由 Samba 服务层(internal/services/samba/)生成配置并重载服务,HTTP 接口见 internal/handlers/samba/,前端页面对应 web/src/routes/[node]/storage/samba/。

准备工作:安装并登录

要求 FreeBSD 15.0 或更新版本,安装命令如下:

pkg install sylve service sylve enable service sylve start

浏览器打开https://<主机地址>:8181,全新安装默认用户名为admin、密码为admin,登录后请立即修改。建议先有一个已挂载的 ZFS 文件系统作为共享目录(Storage → ZFS 中创建)。

第一步:配置 Samba 全局设置

进入Storage → Samba → Settings,点击Update打开全局配置对话框:

选项说明
WorkgroupSMB 工作群组名,与 Windows 客户端环境保持一致
InterfacesSamba 使用的网卡,可多选
Bind Interfaces Only限制 Samba 只监听所选接口,其他网络不可见
Apple Extensions启用fruit等 Apple 扩展,是 Time Machine 选项的前置条件
Advertise Samba (mDNS)是否通过 mDNS 发布 SMB 服务发现记录(默认开启)
Extra Global Configuration追加原始 Samba 指令到[global]段,保存前会用testparm校验

字段定义可参考 internal/handlers/samba/config.go。保存时 Sylve 会校验取值、重写配置并自动重载 Samba,无需手动执行smbcontrol或重启。

第二步:创建 SMB 共享

进入Storage → Samba → Shares,表格中展示每个共享的状态、挂载点、读/写主体与创建时间:

点击New创建共享,对话框分为 Details、Access、Options 三个标签页。

Details 标签页:填写共享名称,并从已挂载的 ZFS 文件系统中选择一个 Dataset。注意一个 Dataset 只能属于一个共享,未挂载的 Dataset 和系统保留目录会被自动排除:

Access 标签页:选择访问模式。私有共享推荐Authenticated(认证访问),然后分别指定读/写的用户与组;Guest 读写仅建议在可信内网使用:

💡 有写权限优先于读权限:同一用户同时出现在读和写列表中时,会被视为写入者。认证共享至少要选择一个用户或组。

Options 标签页提供进阶能力:Time Machine(需先开启 Apple Extensions)、审计日志开关、create mask/directory mask默认权限,以及extraShareConfig原始 Samba 指令字段(如smb encrypt = required)。请求结构定义见 internal/handlers/samba/shares.go。

共享创建后,Sylve 会自动在 Dataset 上应用nfsv4ACL 并重建 mDNS 记录——共享的"发布"和"被发现"一次完成。

第三步:开启 mDNS,让设备自动发现 NAS

mDNS(多播 DNS)让同一局域网内的设备无需 DNS 服务器就能发现服务。进入Network → mDNS → Settings,先确认 mDNS 系统服务已启用,再配置广播接口与主机名:

在Records页面可以看到所有记录,包括用户自建记录与 Samba 自动管理的记录:

  • 当 Samba 设置中Advertise Samba (mDNS)开启且至少存在一个启用共享时,Sylve 会自动发布_smb._tcp(端口 445)记录;
  • 若同时启用了 Apple Extensions 和 Time Machine 共享,还会发布_adisk._tcp记录,Mac 的 Time Machine 可直接发现该 NAS 作为备份目标;
  • Samba 管理的记录是只读的,由 Samba 配置驱动自动重建;用户记录(如_http._tcp类型)可自由增删改,接口实现在 internal/handlers/mdns/records.go。

这样,iPhone、Mac、Windows 的"网络邻居"里都会直接出现这台 NAS,无需手动输入 IP。

第四步:开启审计日志,操作行为可追溯

家庭和企业 NAS 都关心一个问题:文件被谁改过、删过?Sylve 把 Samba 的文件操作审计事件实时解析入库:日志监听器每 2 秒读取一次 Samba 审计文件(路径/var/log/samba4/audit.log,解析逻辑见 internal/services/samba/log.go),自动处理日志轮转,并把重复事件折叠为计数。

在共享的Options标签页开启Audit logging并勾选要记录的操作,可选connect、disconnect、create_file、mkdirat、unlinkat、renameat、openat、close、read、write十种。注意open/read/write这类高频操作会产生大量事件,按需勾选即可。

进入Storage → Samba → Audit Logs查看结果:

表格列包含 Share、User、Client、Client IP、Action、Count、Path、Target、Date,全部支持服务端分页与排序。

保留策略:每条记录在写入时继承所属共享的Retention Days设置(默认 70 天),Sylve 每 6 小时清理一次过期记录;设为0表示永久保留。

小结

用 Sylve 搭建 Samba NAS 的完整路径只需四步:

  1. Samba Settings:设定工作群组与接口绑定
  2. Shares:选择 ZFS 数据集发布共享,分配读/写权限
  3. mDNS:让局域网设备自动发现 SMB 与 Time Machine 服务
  4. Audit Logs:记录并追溯每一次关键文件操作

整个过程无需手写smb.conf,配置变更自动校验(testparm)并热重载服务,审计事件自动解析入库并定期清理。更多细节可查阅仓库内官方指南:Samba Shares、Samba Audit Logs、mDNS Records。

【免费下载链接】Sylve

Lightweight GUI for managing Bhyve, Jails, ZFS, networking, and more on FreeBSD

项目地址:https://gitcode.com/gh_mirrors/sy/Sylve
点击查看免费下载

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询