NFS是Network File System的简写,即网络文件系统. NFS允许一个系统在网络上与他人共享目录和文件。通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件。NFS服务是C/S架构的服务。


一、安装NFS服务


一台NFS服务器就如同一台文件服务器,只要将其文件系统共享出来,NFS客户端就可以将它挂载到本地系统中,从而可以像使用本地文件系统中的文件一样使用那些远程文件系统中的文件。


虽然NFS可以在网络中进行文件共享,但是NFS协议本身并没有提供数据传输的功能,它必须借助于远程过程调用(RPC)协议来实现数据的传输。RPC定义了一种进程间通过网络进行交互通信的机制,它允许客户端进程通过网络向远程服务器上的服务进程请求服务,而不需要了解底层通信协议的细节。


使用NFS服务,至少需要启动以下3个系统守护进程:


(1)rpc.nfsd:它是基本的NFS守护进程,主要功能是管理客户端是否能够登入服务器。


(2)rpc.mountd:它是RPC安装守护进程,主要功能是管理NFS的文件系统。当客户端顺利地通过rpc.nfsd登录NFS服务器后,在使用NFS服务器所提供的文件前,还必须通过文件使用权限的验证,rpc.mountd会读取NFS的配置文件/etc/exports来对比客户端的权限。


(3)portmap:主要功能是进行端口映射工作。当客户端尝试连接并使用RPC服务器提供的服务(如NFS服务)时,portmap会将所管理的与服务对应的端口号提供给客户端,从而使客户端可以通过该端口向服务器请求服务


1、安装 portmap(系统默认已安装,如果没有可以通过yum install postmap* -y安装,新版本为rpcbind)


2、安装 nfs-utils(系统默认已安装,如果没有可以通过yum install nfs-utils -y 安装)


二、启动服务


1、service portmap restart  (6.0以后,service rpcbind restart)


2、service nfslock restart


3、service nfs restart


三、分配固定端口


1、修改nfs文件


由于portmap(rpcbind)是随机来分配端口号的,这对于开启防火墙的服务器来说很难管理,所以我们需要给nfs的各个服务设置一些固定的端口号,这里我们需要修改/etc/sysconfig/nfs这个文件,这里修改几个主要的端口即可


    LOCKD_TCPPORT=4000

    LOCKD_UDPPORT=4000

    MOUNTD_PORT=4001

    STATD_PORT=4002


2、添加iptables条目


   iptables -I INPUT 1 -p tcp --dport 4000 -j ACCEPT

   iptables -I INPUT 1 -p tcp --dport 4001 -j ACCEPT

   iptables -I INPUT 1 -p tcp --dport 4002 -j ACCEPT

   iptables -I INPUT 1 -p udp --dport 4000 -j ACCEPT

   iptables -I INPUT 1 -p udp --dport 4001 -j ACCEPT

   iptables -I INPUT 1 -p udp --dport 4002 -j ACCEPT

   iptables -I INPUT 1 -p tcp --dport 111 -j ACCEPT     #rpc服务的端口

   iptables -I INPUT 1 -p udp --dport 111 -j ACCEPT     #rpc服务的端口

   iptables -I INPUT 1 -p tcp --dport 2049 -j ACCEPT    #NFS服务自身的端口


   service iptables save


四、配置NFS


nfs的主要配置文件是/etc/exports


 /share    x.x.x.0/24(rw,sync)    


注:/24,nfs认为它是一个网段


共享目录    可以访问的主机范围(读写,同步)


注:具体exports文件其他配置通过百度。


五、客户端连接


建议先把上述服务重启一下


1、首先查看主机共享的目录


    showmount -e x.x.x.x


2、将共享目录挂载到本地


    mount   x.x.x.x:/share   /mnt


这样就可以访问共享目录了