NFS 服务器正在导出错误的目录

NFS 服务器正在导出错误的目录

承认这一点有点令人尴尬,但我无法让 NFS 服务器导出正确的目录。我在客户端和服务器上都使用最新的 CentOS 6.2。

服务器已启动并运行,测试期间防火墙被禁用。

在服务器端我创建了这个/etc/exports

/home/user1/documents/   *(ro,sync)

该目录是软件 raid 卷的根目录。mount输出如下:

/dev/mapper/lvm--raid-lvol0 on /home/user1/documents type ext4 (rw,nosuid,nodev)

showmount -e服务器上的命令显示正确的输出:

Export list for servername:
/home/user1/documents (everyone)

我尝试从客户端挂载该共享并得到以下输出:

mount.nfs: access denied by server while mounting servername:/home/user1/documents

但是,当我随后在服务器上查看文件时,/proc/fs/nfsd/exports我看到多个挂载点,但不是正确的挂载点

# Version 1.2
# Path Client(Flags) # IPs
/       *(ro,root_squash,sync,no_wdelay,no_subtree_check,v4root,fsid=0,uuid=696f3ea6:3d7641f3:b6315631:bd63c833)
/home   *(ro,root_squash,sync,no_wdelay,no_subtree_check,v4root,uuid=696f3ea6:3d7641f3:b6315631:bd63c833)
/home/user1     *(ro,root_squash,sync,no_wdelay,no_subtree_check,v4root,uuid=696f3ea6:3d7641f3:b6315631:bd63c833)

这些条目从何而来?为什么没有以 开头的行/home/user1/documents?我尝试安装/home/user1而不是/home/user1/documents从客户端安装,但奇怪的是,它却能正常工作。

服务端和客户端的用户UID是相同的,会不会是导出的目录自己挂载的问题?

编辑

该文件/var/lib/nfs/xtab是空的。

答案1

我看到您正在使用 NFSv4(/proc/fs/nfsd/exports 输出中的 fsid=0 表明了这一点)。NFSv4 需要 NFS 根目录。使用这个 /etc/exports 可能会更好。

/home                    *(ro,fsid=0)
/home/user1/documents/   *(ro,sync)

您可能还需要编辑 /etc/idmapd.conf 中服务器和客户端的域。

顺便提一下,如果您不希望不受信任的系统访问您的数据,我强烈建议用子网替换该星号。

答案2

我遇到了一个问题:

/my/dir1 *(rw,sync,fsid=0,crossmnt,no_subtree_check)
/my/dir2 *(rw,sync,fsid=0,crossmnt,no_subtree_check)

和两个山似乎/my/dir1

我尝试使用与 Ubuntu 16.04nfs-kernel-server/etc/exports示例文件中给出的相同的默认选项:https://unix.stackexchange.com/questions/198009/what-provides-etc-exports-and-how-do-i-find-that-out

解决方案是删除fsid=0,crossmnt并仅使用:

/my/dir1 *(rw,sync,no_subtree_check)
/my/dir2 *(rw,sync,no_subtree_check)

这也提到了:https://forums.opensuse.org/showthread.php/481263-NFS-directs-to-the-wrong-shared-folder/page2?s=ae345ec054b854b5cf036cd1816626f4

我真的不知道这些都是做什么的,有一天我会学习 NFS。也许吧。

相关内容