【免费下载链接】Sylve
Lightweight GUI for managing Bhyve, Jails, ZFS, networking, and more on FreeBSD
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打开全局配置对话框:
| 选项 | 说明 |
|---|---|
| Workgroup | SMB 工作群组名,与 Windows 客户端环境保持一致 |
| Interfaces | Samba 使用的网卡,可多选 |
| 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 的完整路径只需四步:
- Samba Settings:设定工作群组与接口绑定
- Shares:选择 ZFS 数据集发布共享,分配读/写权限
- mDNS:让局域网设备自动发现 SMB 与 Time Machine 服务
- 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
相关推荐
Ceph 的 cephadm SMB Service 实战指南:编排 Samba 容器提供 SMB 共享
Ceph 的 cephadm SMB Service 实战指南:编排 Samba 容器提供 SMB 共享 Ceph 的 cephadm 编排器提供了一种原生的
存储分布式文件系统对象存储后端高可用Ceph SMB 模块(ceph smb)实战指南:基于 cephadm 的 Samba 文件共享集群部署与管理
Ceph SMB 模块(ceph smb)实战指南:基于 cephadm 的 Samba 文件共享集群部署与管理 Ceph 的 smb Manager 模块通过
存储分布式文件系统对象存储后端高可用Apache Airflow Samba Provider 实战指南:用 SambaHook 与 GCSToSambaOperator 打通 SMB 文件共享
Apache Airflow Samba Provider 实战指南:用 SambaHook 与 GCSToSambaOperator 打通 SMB 文件共享
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考