TrueNAS NFS 共享配置与排障

在 TrueNAS 上配置 NFS 共享时,遇到 mount.nfs: access denied by server while mounting 报错,本文记录排查过程及解决方法。

遇到的问题

挂载时报错:

sudo mount -t nfs tnas:/mnt/pool/share /mnt
# mount.nfs: access denied by server while mounting tnas:/mnt/pool/share

排查过程

检查导出列表

在 TrueNAS 主机上执行:

sudo exportfs -v

输出如下:

/mnt/pool/share
        192.168.1.0/24(sync,wdelay,hide,no_subtree_check,anonuid=3000,anongid=3000,sec=sys,rw,secure,root_squash,all_squash)

注意到导出选项中包含 secure 标志,这是关键。

分析原因

secure 选项要求 NFS 客户端必须从端口小于 1024 的特权端口发起请求。现代 Linux 发行版默认从非特权端口发起挂载,因此被服务器拒绝。

解决方法

在 TrueNAS Web UI 中开启 Allow non-root mount 选项:

  1. 进入 System SettingsServices
  2. 找到 NFS 服务,点击编辑图标(铅笔/齿轮)
  3. 在配置窗口中,勾选 Allow non-root mount(允许非 root 用户挂载)
  4. 保存配置

此选项会移除导出中的 secure 限制,允许客户端从任意端口发起挂载请求。

重新验证

sudo mount -t nfs tnas:/mnt/pool/share /mnt
df -h /mnt

总结

问题原因解决
access denied by server导出有 secure 选项,客户端从非特权端口挂载被拒绝开启 TrueNAS NFS 服务中的 Allow non-root mount

secure 是 NFS 的传统安全机制,要求 privileged port。现代环境建议开启 Allow non-root mount,同时配合网络访问控制(ACL)保证安全。