NFS原理1.用户进程访问NFS客户端使用不同的函数对数据进行处理2.NFS客户端通过TCP/IP的方式传递给NFS服务端。3.NFS服务端接收到请求后会先调用portmap进程进行端口映射。4.nfsd进程用于判断NFS客户端是否拥有权限连接NFS服务端。5.Rpc.mount进程判断客户端是否有对应的权限进行验证。6.idmap进程实现用户映射和压缩7.最后NFS服务端会将对应请求的函数转换为本地能识别的命令传递至内核由内核驱动硬件。环境准备服务器系统角色外网ip内网ipCentos7.9NFS服务器10.0.0.200172.16.1.200Centos7.9web服务器10.0.0.7172.16.1.7一、关闭防火墙在NFS、web服务器都执行关闭Firewalld systemctl stop firewalld systemctl disable firewalld 关闭selinux 修改 /etc/selinux/config 文件为SELINUXdisabled 临时修改 setenforce 0二、安装NFS在NFS、web都需要安装web只需要安装不需要启动yum install -y nfs-utils三、配置文件在NFS服务器配置文件修改 /etc/exports 创建data共享目录 mkdir /data 修改目录权限 chown nfsnobody.nfsnobody /data 修改为/data/ 172.16.1.0/24(rw,sync,all_squash) 参数说明 允许172.16.1.0/24下的ip可以挂载 rw读写 ro只读 sync同步写安全数据同步写入磁盘后才返回安全、慢一点生产推荐 async异步快先放内存异步刷盘速度快断电可能丢数据 root_squash默认客户端 root → 服务端会被压缩成匿名用户 nfsnobody没有 root 权限 no_root_squash:NFS 必用客户端 root 服务端 root不压缩读写权限完全正常 all_squash所有客户端用户都压缩成匿名用户 anonuidxxx 匿名用户映射为本地 UID anongidxxx 匿名用户映射为本地 GID四、启动服务systemctl start nfs systemctl enable nfs五、检查服务和新配置文件cat /var/lib/nfs/etab netstat -nltp | grep nfs六、web客户端挂载共享目录检查共享[rootweb01~]#showmount -e 172.16.1.200 Export list for 172.16.1.200: /data 172.16.1.0/24挂载mount -t nfs 172.168.1.200:/data /nfsdir 生产环境挂载 mount ‐t nfs ‐o nosuid,noexec,nodev 172.16.1.200:/data /nfsdir 防止提权、防止执行恶意程序、防止滥用设备文件。写入开机自启挂载目录中