NFS:服务器显示“已验证的挂载请求”,但客户端看到“访问被拒绝”

NFS:服务器显示“已验证的挂载请求”,但客户端看到“访问被拒绝”

我有两台机器,一台 NFS 服务器 (RHEL) 和一台客户端 (Debian)。服务器已设置 NFS,导出特定目录:

server:~$ sudo /usr/sbin/rpcinfo -p localhost
program vers proto   port
100000    2   tcp    111  portmapper
100000    2   udp    111  portmapper
100024    1   udp    910  status
100024    1   tcp    913  status
100021    1   udp  53391  nlockmgr
100021    3   udp  53391  nlockmgr
100021    4   udp  53391  nlockmgr
100021    1   tcp  32774  nlockmgr
100021    3   tcp  32774  nlockmgr
100021    4   tcp  32774  nlockmgr
100007    2   udp    830  ypbind
100007    1   udp    830  ypbind
100007    2   tcp    833  ypbind
100007    1   tcp    833  ypbind
100011    1   udp    999  rquotad
100011    2   udp    999  rquotad
100011    1   tcp   1002  rquotad
100011    2   tcp   1002  rquotad
100003    2   udp   2049  nfs
100003    3   udp   2049  nfs
100003    4   udp   2049  nfs
100003    2   tcp   2049  nfs
100003    3   tcp   2049  nfs
100003    4   tcp   2049  nfs
100005    1   udp   1013  mountd
100005    1   tcp   1016  mountd
100005    2   udp   1013  mountd
100005    2   tcp   1016  mountd
100005    3   udp   1013  mountd
100005    3   tcp   1016  mountd

server$ cat /etc/exports
/dir      *.my.domain.com(ro) 

client$ grep dir /etc/fstab
server.my.domain.com:/dir   /dir      nfs tcp,soft,bg,noauto,ro 0 0

一切似乎都很好,但是当我尝试安装时,我看到以下内容:

client$ sudo mount /dir
mount.nfs: access denied by server while mounting server.my.domain.com:/dir

在服务器上我看到:

server$ tail /var/log/messages
Mar 15 13:46:23 server mountd[413]: authenticated mount request from client.my.domain.com:723 for /dir (/dir)

我在这里遗漏了什么?我应该如何调试它?

答案1

如果您的 /etc/hosts.allow 和 /etc/hosts.deny 不正确,我就会遇到这种情况;检查这些文件中是否有包含 portmap 的行,然后将其注释掉(如果您不在防火墙后面,则不安全)或将客户端/服务器上的该行设置为您的特定子网。

例如,在 /etc/hosts.allow 中:

portmap: 192.168.0.0/16

...并注释掉 /etc/hosts.deny 中的所有内容,以使只有 hosts.allow 处于活动状态。NFS 使用 tcpwrappers 和这些文件以及 /etc/exports 中的内容来控制访问。

答案2

您的rpcinfo意思是 NFS 正在尝试通过 UDP 连接。看来 NFSv4 不再通过 UDP 工作,但期望使用 TCP。

例如,Linux 内核甚至尝试通过 UDP 挂载 rootfs,即使对于 NFSv4,也需要在末尾添加一个特殊参数nfsroot。例如:nfsroot=192.79.143.131:/diskless/client01,tcp

答案3

我在装有 macOS 客户端的 Debian 10.2 服务器上遇到了同样的问题。我的解决方案:

在 NFS 服务器上,将insecure选项添加到共享/etc/exports并重新运行exportfs -r

来源这里

答案4

/proc/fs/nfsd所有机器都坏了还是只有一台机器坏了?服务器上是否安装了 nfsd 伪文件系统?

相关内容