You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AlmaLinux 9.3等EL系统NFSv4挂载触发access denied错误的排查求助

AlmaLinux 9.3等EL系统NFSv4挂载触发access denied错误的排查求助

这问题真的把我难住了,能查的地方都查遍了,真心求各位大佬给点建议!

我这边同一VLAN下有三台主机,情况如下:

  • trillian (192.168.1.3/24):AlmaLinux 9.3虚拟机,最初装的是9.2后来升级上来的,同时做NFS服务器和DNS服务器。但它自己没法访问自己的NFS共享,之前替换掉的CentOS Stream 8版本的trillian完全没这问题。
  • marvin (192.168.1.2/24):CentOS Stream 8物理机,用libvirt/QEMU/KVM跑两台虚拟机,给虚拟机用桥接网络。这台能正常访问trillian上的NFS共享。
  • agrajag (192.168.1.126/24):刚搭建的AlmaLinux 9.3虚拟机,同样没法访问trillian的NFS共享。

另外还有好几台Fedora 39的物理机和虚拟机,访问这个NFS共享都完全正常。

NFS相关配置情况

NFS服务器除了/etc/exports之外都是默认配置,exports里的条目是:

/srv/shares/steve localhost(rw) trillian.purplehayes.uk(rw) marvin.purplehayes.uk(rw) jabberwock.purplehayes.uk(rw) jubjub.purplehayes.uk(rw) dormouse.purplehayes.uk(rw) agrajag.purplehayes.uk(rw) arthur.purplehayes.uk(rw) alice.purplehayes.uk(ro) tweedledum.purplehayes.uk(ro) tweedledee.purplehayes.uk(ro)

客户端fstab的挂载条目是:

trillian:/srv/shares/steve /mnt/nfs/steve nfs defaults 0 0

问题现象

那两台AlmaLinux 9.3(包括NFS服务器自己)挂载共享时总是失败,报错:

mount.nfs: access denied by server while mounting trillian:/srv/shares/steve

用Wireshark抓包分析,发现NFSv4的请求序列是正常的:先LOOKUP/GETATTR/ACCESS /srv,然后是/srv/shares,最后是/srv/shares/steve。失败发生在第三个ACCESS请求的响应里——正常应该返回0x1df(所有权限允许),但实际返回0x000(所有权限都被拒绝)。

我对比了正常请求(marvin发起)和失败请求(agrajag发起)的抓包差异,关键区别在响应部分:

正常响应:V4 Reply (Call In 167) ACCESS, [Allowed: RD LU MD XT DL XAR XAW XAL]
失败响应:V4 Reply (Call In 114) ACCESS, [Access Denied: RD LU MD XT DL XAR XAW XAL]

具体的权限位差异:

  • 正常:Access rights (of requested): 0x1df(所有读写、查找、修改等权限都允许)
  • 失败:Access rights (of requested): 0x00(所有权限全被拒绝)

后续排查动作

我后来把agrajag重装成AlmaLinux 8.9,还是没法挂载共享。在服务器上开了全量rpc调试(rpcdebug -m rpc -c all、rpcdebug -m nfsd -c all),客户端开了rpcdebug -m nfs -c all,不管是systemd日志还是dmesg里都没找到相关的错误信息。试了sysctl -w sunrpc.nfsd_debug=1023之类的命令,也没起作用(估计是因为用systemd管理的原因)。

已经排除的可能性:

  • 防火墙规则:NFS流量正常通行
  • 网络问题:服务器本地挂载也失败,说明和网络无关
  • NFS insecure选项:客户端用的端口都是<1024的,也没有NAT
  • /etc/exports配置问题:showmount -e返回的结果是符合预期的
  • 主机名解析问题:所有主机的正向、反向DNS记录都是正确的(trillian本身就是DNS服务器)
  • SELinux:关闭SELinux后问题依旧
  • UID/GID不匹配:挂载都是用root(0:0)操作的,共享只做了root squash,用户steve(1000:1000)的权限也没问题
  • NFS版本问题:指定-o nfsvers=3能挂载,但一执行ls就失败,两台有问题的机器都是这个情况,NFSv3和v4差异大,这个结果也在意料之中
  • 共享目录问题:换另一个共享目录,问题同样存在

最新更新

我搭了一台新的服务器arthur(192.168.1.127),是AlmaLinux 8.9的虚拟机,配置和trillian基本一致,结果出现了完全相同的问题,抓包的NFSv4 ACCESS响应也是权限全拒绝。看来这个问题是EL 9.x或者特定版本的EL系统特有的?

备注:内容来源于stack exchange,提问作者tsgsh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 12:08:11