22作为服务器、20作为客户端
配置服务
1、22和20机器 都要安装NFS服务和rpcbind服务,服务器上一般都安装了这两个服务,可以使用命令"service nfs status"和"service rpcbind status"查看这两个服务是否已启动。如果系统中的确没有安装这两个服务,请先安装。
使用rpm -qa|grep nfs与rpm -qa|grep rpcbind即可,如果没有安装,在CentOS内可以使用yum install nfs-utils来安装(基本所有的都会有)
2、在22服务器上修改nfs共享配置文件:/etc/exports
添加共享文件路径
/root/cuichunchi/ 192.168.12.0/24(rw,no_root_squash,no_all_squash,sync)
/root/cuichunchi/ 为共享的路径
主机名的设置有一下几种:
a.可以使用ip或网络号:例如 192.168.12.20 或者192.168.12.0/24 或者192.168.100.0/255.255.255.0都可以
b.可以使用主机名,但是这主机名必须在/etc/hosts内配置
至于后面括弧里面的权限:
rw/ro:rw表示(read-write)可读写,ro表示(read-only)只读
sync/asyncsync表示数据同步写入到内存与硬盘中,async表示数据会暂存与内存中,而非直接写入硬盘
no_root_squash/root_squash反正就是客户端访问权限的问题,需要开放no_root_squash
all_squash不论登录NFS的用户身份为何,他的身份都会被压缩成为匿名用户,通常也就是nobody(nfsnobody)
anonuid/anongid这个UID必须存放在/etc/passwd
3.防火墙的设置问题与解决方案
一般说,NFS的服务只会对内部网络开放,不会对外网开放,但如果有特殊需要的话,那么也可能跨不同的网络。但是NFS的防火墙
特别难搞,因为除了固定的post 111、2049外,还有很多由rpc.mountd、rpc.rquotad等服务所开启的不固定的端口,所以iptables
很难设定规则。
为了解决问题,CentOS 6.x 提供一个固定特定的NFS服务的端口配置文件,在/etc/sysconfig/nfs。在这个文件中就可以指定特定的
端口,这样每次启动NFS时,相关服务启动的端口就会固定,这样,我们就能设置正确的防火墙了,在这个文件只需要修改与PORT有
关的端口即可,修改的RPC服务有mountd、rquotad、nlockmgr这3个。
添加完之后,重启rpcbind 和 nfs,(service nfs stop/restart/start)先开启rpcbind 后开启nfs,
使用命令rpcinfo -p 192.168.12.22来查看rpc监听的端口。
还需要将这几个端口开放出来netstat -tulnp |grep -E '(rpc|nfs)',不然在客户端使用命令showmount -e 192.168.12.22会报错:
(或者关闭防火墙(service iptables stop)或者将相关端口启用(可以使用rpcinfo -p 192.168.102.91查看需要开启的端口号)。)
Port mapper failure - Unable to receive: errno 113 (No route to host)。
命令firewall 防火墙命令/也可以使用iptables 来添加开放端口的规则
使用命令firewall-cmd --list-all 查看开放的端口。
使用firewall-cmd --add-port 2049/tcp来开放2049这个端口
4.设置防火墙成功之后,在服务器使用命令showmount -e 192.169.12.22来监测是否有共享的文件
5.在客户端使用命令showmount -e 192.168.12.22来查看可共享的文件
6.建立挂载点
mount -t nfs 192.168.12.22:/root/cuichunchi /ccc即可挂载
7.卸载挂载的NFS目录
umount /ccc
8.最后将目录自动挂载,避免系统重启后手动挂载
a.将需要挂载点与相关参数写入到/etc/fstab文件中
b.如果a方法不能自动挂载,则将挂载的命令写入/etc/rs.d/rs.local即可(在客户机中)
关于服务端的nfs与rpcbind 可以设置为开启自动开启