我有两个RedHat 4服务器。 客户端是4.6,服务器是4.5。 我试图从服务器上挂载一个共享,通过NFS到客户端上。
/ etc / exportsconfiguration如下:
/opt/data/config bkup(rw,no_root_squash,async)
/opt/data/db bkup(rw,no_root_squash,async)
exportfs返回这些(除其他之外)共享,nfs根据ps
输出运行。
我一直试图在客户端上使用autofs,但select只是手动安装共享考虑我遇到的问题。
所以,我发出挂载请求:
mount dist:/opt/data/config /mnt/config
mount:dist:/ opt / data / config失败,服务器给出的原因:权限被拒绝
好的,让我们来看看服务器自己说了些什么。
5月6日23:17:55 dist mountd [3782]:从/ opt / data / config(/ opt / data / config)的bkup:662authentication的挂载请求
它说,它允许山地发生。
我怎样才能诊断为什么客户端和服务器不同意的结果?
这是身份validation和授权之间区别的一个很好的例子。 在这种情况下,身份validation成功,但主机目录上的授权很可能成为问题。 为了testing,您可以尝试将主机的目录权限recursion设置为777(不要忘记稍后再次更改)。
检查事项:
我通常使用tcpdump来debugging这类问题。 原始数据包捕获总是告诉别人。
从NFS客户端和服务器启动数据包捕获。
tcpdump -s0 -i ethX -w /tmp/tcpdump_from_client.pcap host <NFS-server-IP> tcpdump -s0 -i ethX -w /tmp/tcpdump_from_server.pcap host <NFS-client-IP>
用eth1或者eth1replaceethX,或者用eth1replaceeth1。
然后,在数据包捕获中查找RPC传输。 我更喜欢wireshark并看到TCP部分。 我经常看到它提供了一些线索。
下一步将是启用NFSdebugging日志。
我会强烈要求你保留tcpdump数据给你自己,或者让你检查你信任的人。
检查/proc/fs/nfsd
是否有文件。
如果没有,发出这个命令:
mount -t nfsd none /proc/fs/nfsd
如果有,我也不知道。