OpenMediaVault SMB 与 NFS 共享实操与验证指南
OpenMediaVault SMB/CIFS 与 NFS 文件共享端的实际部署与验证指南,含服务端文件系统准备、SMB 共享配置与 smbclient 端到端读写实测(put/get)、NFS 服务端 exports 配置与 showmount 验证,以及容器 overlayfs 环境下 NFS 导出限制的如实说明。基于 OMV7.7 真实客户端读写实测。
OpenMediaVaultOpenMediaVault2026/10/06
OpenMediaVault SMB 与 NFS 共享实操与验证指南
目标:在 OMV7 上配置并实测验证 SMB/CIFS 与 NFS 文件共享。SMB 给出服务端 smb.conf +
smbclient客户端端到端 put/get 真实输出;NFS 给出/etc/exports配置与showmount验证,并如实说明容器 overlayfs 下 NFS 的内核限制(真机/独立分区不受此限)。实测环境:OMV 7.7.24-7 (Debian 12),服务端容器 IP 172.17.0.15。
1. 前置:文件系统与共享文件夹
共享文件夹必须落到某文件系统的挂载点下。测试用 loop 文件充当一块磁盘:
dd if=/dev/zero of=/srv/testfs.img bs=1M count=1200
mkfs.ext4 -F /srv/testfs.img
mkdir -p /srv/testfs && mount -o loop /srv/testfs.img /srv/testfs
mkdir -p /srv/testfs/data
- 若走 Web 界面,"存储 → 文件系统"登记后 salt 部署 fstab,写入
/etc/fstab:/dev/loop17 /srv/testfs ext4 defaults,noatime 0 0 - "访问权限管理 → 共享文件夹"创建
TestShare(文件系统=/srv/testfs,相对路径=data)。
2. SMB/CIFS 服务端配置
OMV 通过 samba 提供 SMB。可在 Web "服务 → SMB/CIFS" 配置,或直接维护 /etc/samba/smb.conf(OMV 渲染的等价产物):
[global]
workgroup = WORKGROUP
server string = %h OMV test
security = user
passdb backend = tdbsam
map to guest = Never
[TestShare]
path = /srv/testfs
valid users = smbtest
read only = no
browseable = yes
create mask = 0664
directory mask = 0775
建 SMB 用户并把挂载点授权给该用户(实测):
useradd -M -s /usr/sbin/nologin smbtest
(echo smbtest; echo smbtest) | smbpasswd -a -s smbtest # Added user smbtest.
chown -R smbtest:smbtest /srv/testfs
systemctl start smbd nmbd
systemctl is-active smbd nmbd # active active
注意
smbpasswd -a必须显式带用户名参数,否则默认给当前用户(root)加口令,会导致 logon failure。
3. SMB 客户端端到端实测(smbclient)
客户端容器(Debian 12,装 smbclient):
# 列出共享
smbclient -L //172.17.0.15 -U smbtest%smbtest
# Sharename Type Comment
# --------- ---- -------
# TestShare Disk
# IPC$ IPC IPC Service (omv OMV test)
# 上传 + 列目录(真实 put)
echo "hello from smb client" > /tmp/hi.txt
smbclient //172.17.0.15/TestShare -U smbtest%smbtest -c "put /tmp/hi.txt hi.txt; ls"
# putting file /tmp/hi.txt as \hi.txt (16.6 kb/s)
# hi.txt A 51 Tue Oct 6 12:08:23 2026
# 下载回本地校验(真实 get)
smbclient //172.17.0.15/TestShare -U smbtest%smbtest -c "get hi.txt /tmp/got.txt"
# getting file \hi.txt of size 51 ...
cat /tmp/got.txt # hello from smb client ... (内容一致)
结论:SMB 上传(put)写入 /srv/testfs、下载(get)回读一致,共享链路真实可用。
4. NFS 服务端配置
# 导出声明(Web "服务 → NFS → 共享" 等价产物)
echo "/srv/testfs 172.16.0.0/12(rw,sync,no_subtree_check,no_root_squash)" > /etc/exports
exportfs -ra
systemctl enable --now nfs-kernel-server # active
# 查看导出表(服务端真实)
showmount -e 127.0.0.1
# Export list for 127.0.0.1:
# /srv/testfs 172.16.0.0/12
exportfs -v
# /srv/testfs 172.16.0.0/12(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,no_root_squash,no_all_squash)
客户端挂载方式(真机/普通主机):
apt-get install -y nfs-common
mkdir -p /mnt/nfs
mount -t nfs -o vers=4 <OMV_IP>:/srv/testfs /mnt/nfs
# 之后读写即落盘,也可编辑 /etc/fstab 开机自动挂载。
5. 容器/overlayfs 下 NFS 的如实限制
- 本组件在容器(root=overlayfs)环境实测,内核 NFS 导出器拒绝导出 overlayfs 目录,挂载报:
mount.nfs: mounting <ip>:/srv/testfs failed, reason given by server: No such file or directory
# 服务端亦提示:
exportfs: /export/testdir does not support NFS export
- 这是 overlayfs 而非 OMV 配置问题:NFS 只能用常规块文件系统(ext4/xfs/btrfs 分区)承载导出目录。OMV 真机/虚机上,SMB 与 NFS 都由独立数据分区承载,NFS 可正常导出与挂载。
- 因此:本文 SMB 为客户端端到端实测;NFS 服务端配置与导出表为实测产物,客户端挂载部分给出标准命令,并在容器场景注明限制。
6. 安全建议
- SMB:设置强口令、禁用 guest、按需最小共享目录;SMB1 应关闭(OMV 默认 SMB2)。
- NFS:导出网段最小化、必要时
no_root_squash仅限受信主机。 - 定期备份
/etc/openmediavault/config.xml、/etc/samba/smb.conf、/etc/exports。
7. 常见问题
- smbclient 报 NT_STATUS_LOGON_FAILURE:
smbpasswd -a未指定用户名,或口令不一致。 - 共享写不进:挂载点属主未放给共享用户(
chown)或权限位未开写。 - NFS
No such file or directory/does not support NFS export:overlayfs 容器限制,改用独立分区。
章节目录