我之前能够在运行 CentOS 6.6 的计算机上配置 NFS 服务器,并在具有相同操作系统并使用autofs
.
上周我重新安装了我拥有的所有操作系统,但现在由于某种原因我无法让它工作。服务器计算机仍然运行 CentOS 6.6,虚拟机现在运行 CentOS 7(我也用另一台运行 Debian Wheezy 的虚拟机尝试过,但仍然不起作用)。
服务器 ( centosserv
) 在 192.168.1.89 上运行,客户端 ( centoscli
CentOS 7 ) 在 192.168.1.100 上运行。
我要共享的文件系统是/NFSSHARE
和/NFSSHARE/mydir
,因此/etc/exports
服务器上的文件包含以下内容:
/NFSSHARE 192.168.1.100(fsid=0,rw,sync,no_subtree_check,root_squash,anonuid=1000,anongid=1000)
/NFSSHARE/mydir 192.168.1.100(ro,sync,no_subtree_check)
如果我运行showmount -e
我会得到这个:
[root@centosserv ~]# showmount -e
Export list for centosserv:
/NFSSHARE/mydir 192.168.1.100
/NFSSHARE 192.168.1.100
所以到目前为止一切看起来都很好。
在客户端,我编辑了/etc/auto.master
以下行:
/mnt/nfs /etc/auto.nfs-share --timeout=90
然后创建/etc/auto.nfs-share
包含以下内容的文件:
[root@centoscli ~]# cat /etc/auto.nfs-share
writeable_share -rw 192.168.1.89:/
non_writeable_share -ro 192.168.1.89:/mydir
鉴于以下输出,这似乎也有效:
[root@centoscli ~]# mount | grep nfs-share
/etc/auto.nfs-share on /mnt/nfs type autofs (rw,relatime,fd=18,pgrp=2401,timeout=90,minproto=5,maxproto=5,indirect)
此时,/mnt/nfs/writeable_share
和/mnt/nfs/non_writeable_share
尚未安装,除非我尝试直接访问它们,按照本教程(这与我上次设置 NFS 服务器时遵循的相同*)。所以只有在我尝试之后才ls -l /mnt/nfs/writeable_share
应该安装它。但我得到的输出是:
[root@centoscli ~]# ls -l /mnt/nfs/writeable_share
ls: cannot access /mnt/nfs/writeable_share: No such file or directory
我ping
从客户端编辑了服务器,反之亦然,只是为了检查它们是否可以互相访问,而且它们似乎可以。
我所做的一切都与第一次完全一样,但由于某种原因,这次我无法让它工作。我尝试通过/etc/fstab
在客户端编辑文件并手动而不是使用来做到这一点autofs
,但它似乎也不起作用。iptables
在服务器端禁用使其可以与fstab
手动一起使用,但autofs
还不能使用。
我还能检查什么,或者哪里出错了?
*除了前三个步骤之外,因为我没有任何服务称为nfs-common
文件/etc/default/nfs-common
。
编辑
我正在退房本教程是关于 FB 上 CentOS 小组的在服务器端据说已经解决并且我们准备好开始配置客户端之后,这样说:
测试是否可以看到 NFS 服务器:
showmount -e
因此,我猜测showmount -e
在客户端上使用我应该能够在服务器上获取一些信息,或者至少确认我可以在该客户端上从该服务器挂载文件系统。但是,我尝试showmount -e 192.168.1.89
在客户端使用,我收到的唯一消息是:
clnt_create: RPC: Port mapper failure - Unable to receive: errno113 (No route to host)
我猜这可能是问题所在,但我不确定这意味着什么。
编辑2
在服务器端禁用后,我现在可以在客户端iptables
使用时看到导出的文件系统。showmount -e 192.168.1.89
我认为这使得我上面的第一个编辑毫无意义。但是,我仍然无法使用autofs
.
编辑3
好的,除了iptables
禁用之外,我还在/etc/exports
服务器和/etc/auto.nfs-share
客户端上进行了编辑,如下所示:
[root@centosserv ~]# cat /etc/exports
/NFSSHARE 192.168.1.100(fsid=0,rw,sync,no_subtree_check,root_squash,anonuid=1000,anongid=1000)
/NFSSHARE/mydir 192.168.1.100(rw,sync,no_subtree_check,root_squash,anonuid=1000,anongid=1000)
/NFSSHARE/mydir/ro 192.168.1.100(ro,sync,no_subtree_check)
[root@centoscli ~]# cat /etc/auto.nfs-share
writeable_share -fstype=nfs4,rw 192.168.1.89:/mydir
non_writeable_share -fstype=nfs4,ro 192.168.1.89:/mydir/ro
在那里我似乎能够山文件系统,但是不要从客户端写:
[root@centoscli ~]# touch /mnt/nfs/writeable_share/test_from_client.file
touch: cannot touch ‘/mnt/nfs/writeable_share/test_from_client.file’: Permission denied
答案1
看来这里的问题是在服务器端导出的文件夹的权限设置。因此,在服务器上执行以下操作允许我从客户端写入:
[root@centosserv ~]# chmod 777 /NFSSHARE
我在服务器和客户端的全新安装上执行了此操作。再次遇到同样的问题,甚至没有尝试iptables
在服务器上禁用并完成我这次编辑到问题中的更改,决定确保/NFSSHARE
正确设置权限。看来已经成功了。