CentOS系统NFS服务器客户端安装与配置:

    一.确认安装:nfs客户端和服务端都安装nfs-utils包,同时自动安装rpcbind   命令:yum install -y nfs-utils rpcbind
    二.NFS权限说明:
        配置文件/etc/exports: # vim /etc/exports
                                /var/nfs    192.168.1.0/24(rw)
                                # exportfs -r #重载exports配置    exportfs参数说明    -a 全部挂载或卸载 /etc/exports中的内容    -r 重新读取/etc/exports 中的信息 ,并同步更新/etc/exports、/var/lib/nfs/xtab
                                                                                        -u 卸载单一目录(和-a一起使用为卸载所有/etc/exports文件中的目录)   -v 输出详细的共享参数
                                # exportfs -v #查看共享参数
                                /var/nfs          192.168.1.0/24(rw,sync,wdelay,hide,no_subtree_check,sec=sys,secure,root_squash,no_all_squash)
        
        1、普通用户
            当设置all_squash时:访客时一律被映射为匿名用户(nfsnobody)
            当设置no_all_squash时:访客被映射为服务器上相同uid的用户,因此在客户端应建立与服务端uid一致的用户,否则也映射为nfsnobody。root除外,因为root_suqash为默认选项,除非指定了no_root_squash

        2、root用户
            当设置root_squash时:访客以root用户访问NFS服务端时,被映射为nfsnobody用户
            当设置no_root_squash时:访客以root用户访问NFS服务端时,被映射为root用户。以其他用户访问时同样映射为对应uid的用户,因为no_all_squash是默认选项
        选项说明
        ro:共享目录只读
        rw:共享目录可读可写
        all_squash:所有访问用户都映射为匿名用户或用户组
        no_all_squash(默认):访问用户先与本机用户匹配,匹配失败后再映射为匿名用户或用户组
        root_squash(默认):将来访的root用户映射为匿名用户或用户组
        no_root_squash:来访的root用户保持root帐号权限
        anonuid=<UID>:指定匿名访问用户的本地用户UID,默认为nfsnobody(65534)
        anongid=<GID>:指定匿名访问用户的本地用户组GID,默认为nfsnobody(65534)
        secure(默认):限制客户端只能从小于1024的tcp/ip端口连接服务器
        insecure:允许客户端从大于1024的tcp/ip端口连接服务器
        sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性
        async:将数据先保存在内存缓冲区中,必要时才写入磁盘
        wdelay(默认):检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率
        no_wdelay:若有写操作则立即执行,应与sync配合使用
        subtree_check(默认) :若输出目录是一个子目录,则nfs服务器将检查其父目录的权限
        no_subtree_check :即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率
    三.配置端口:
        nfs除了主程序端口2049和rpcbind的端口111是固定以外,还会使用一些随机端口,以下配置将定义这些端口,以便配置防火墙
        # vim /etc/sysconfig/nfs
        #追加端口配置
        MOUNTD_PORT=4001
        STATD_PORT=4002
        LOCKD_TCPPORT=4003
        LOCKD_UDPPORT=4003
        RQUOTAD_PORT=4004(如果没有,就设置)
    四、防火墙
        # iptables -I INPUT 5 -p tcp -m tcp --dport 111 -j ACCEPT
        # iptables -I INPUT 5 -p udp -m udp --dport 111 -j ACCEPT
        # iptables -I INPUT 5 -p tcp -m tcp --dport 2049 -j ACCEPT
        # iptables -I INPUT 5 -p udp -m udp --dport 2049 -j ACCEPT
        # iptables -I INPUT 5 -p tcp -m tcp --dport 4001:4004 -j ACCEPT
        # iptables -I INPUT 5 -p udp -m udp --dport 4001:4004 -j ACCEPT
        # iptables-save >/etc/sysconfig/iptables
    五.启动服务
        # systemctl start rpcbind.service
        # systemctl enable rpcbind.service
        # systemctl start nfs.service
        # systemctl enable nfs.service
        启动顺序一定是rpcbind->nfs,否则有可能出现错误
    六.Linux客户端挂载:# mount -t nfs nfs.st.local:/var/nfs /mnt
    
七、故障解决
    1、nfs只能挂载为nobody   同时修改服务端、客户端/etc/idmapd.conf中的Domain为一样的值,随后重启rpcidmapd服务,或重启所有服务
    2、客户端无法卸载nfs目录     umount.nfs4: /var/nfs: device is busy   执行fuser -km /var/nfs/,然后再执行umount
    
2019-9-6
    CentOS系统NFS服务器与windows客户端安装与配置:
    服务器端配置相同,客户端需先在 控制面板-程序-打开或关闭windows功能中打开NFS服务,然后在cmd命令行中输入mount \\服务器地址\共享目录 挂载点:  例:mount \\192.168.0.108\home f:
    
    挂载后但是没有权限怎么办?(打开注册表,进行修改,如果注册表修改后没有起作用,那么此电脑-右键-属性-设备管理器-显示适配器-先禁用带intel(R)的显卡驱动,然后再开启,就能调节了 )