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 选项:
- 进入 System Settings → Services
- 找到 NFS 服务,点击编辑图标(铅笔/齿轮)
- 在配置窗口中,勾选 Allow non-root mount(允许非 root 用户挂载)
- 保存配置
此选项会移除导出中的 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)保证安全。