# Linux NFS ### NFS安装 ```shell $ yum install nfs-utils rpcbind ``` ### NFS服务配置 * 启动NFS和RPC服务 ```shell $ systemctl enable rpcbind $ systemctl enable nfs-server $ systemctl start rpcbind $ systemctl start nfs-server ``` * 防火墙放通NFS ```shell $ firewall-cmd --permanent --add-service=nfs $ firewall-cmd --permanent --add-service=rpc-bind $ firewall-cmd --permanent --add-service=mountd $ firewall-cmd --reload ``` * 共享目录配置 * 创建共享目录 ```shell # 创建共享目录,分配权限为nfsnobody用户和组 ``` * 配置exports文件 ```shell $ vim /etc/exports # 格式如下 # 目录 允许访问主机(参数) ``` ### 配置文件参数 | 参数 | 作用 | | ------------------- | ------------------------------------------------------------ | | ro | 共享目录只读 | | rw | 共享目录可读可写 | | all_squash | 将所有用户都映射为匿名用户和用户组 | | no_all_squash(默认) | 访问用户先于本机用户匹配,匹配失败后再映射为匿名或或用户组 | | root_squash(默认) | 将来访的root用户映射为匿名用户或用户组 | | no_root_squash | 来访root用户保持root账号权限 | | anonuid= | 指定匿名访问用户的本地用户UID,默认为nfsnobody(65534) | | anongid= | 指定匿名用户访问用户的本地用户组GID,默认为nfsnobody(65534) | | secure(默认) | 限制客户端只能从小于1024的TCP/IP端口连接服务器 | | inSecure | 允许客户端从大于1024的TCP/IP端口连接服务器 | | sync | 将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性 | | async | 将数据先保存在内存缓冲区中,必要时才写入磁盘 | | wdelay(默认) | 检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率 | | no_wdelay | 若有写操作则立即执行,应于sync配合使用 | | subtree_check(默认) | 若输出目录是一个子目录,则NFS服务器将检查其父目录的权限 | | no_subtree_check | 即使输出目录是一个子目录,NFS服务器也不检查其父目录的权限,这样可以提高效率 | ### 远程挂载 ```shell $ showmount -e "NFS服务器IP" # 查看远程NFS节点 $ mount -t nfs "NFS服务器IP":"服务器路径" "本机路径" ```