准备

nfs如果不是最小化安装默认是安装了的,可以service nfs startsystemctl start nfs启动,如果没有则执行安装yum install nfs-utils -y

服务端

/etc/exports 为nfs服务端配置文件。

配置文件格式

输出目录
客户端1 (访问权限,用户映射,其他) ]
客户端2 (访问权限,用户映射,其他)
……

格式说明

输出目录:NFS系统共享给客户机使用的目录

客户端:网络中可以访问这个NFS输出目录的计算机

  • 192.168.0.10:指IP地址
  • 192.168.0.0/24:指定子网
  • fwd.nocsys.cn:指定域名
  • *.nocsys.cn:指定域
  • *:所有主机

访问权限:设置NFS输出目录的访问权限

  • ro:只读
  • rw:读写

用户映射:

  • all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组
  • no_all_squash:不映射(默认设置)
  • root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置)
  • no_root_squash:root用户对共享的目录拥有至高的权限控制,就像是对本机的目录操作一样
  • anonuid=xxx:将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx)
  • anongid=xxx:将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx)

其他:

  • secure:限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置)
  • insecure:允许客户端从大于1024的tcp/ip端口连接服务器
  • sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性
  • async:将数据先保存在内存缓冲区中,必要时才写入磁盘
  • wdelay:检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认设置)
  • no_wdelay:若有写操作则立即执行,应与sync配合使用
  • subtree:若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置)
  • no_subtree:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率
例如
/root/nfs
192.168.43.0/24 (rw,sync,no_root_squash) 
192.168.1.0/24 (rw)

/root/nfs

代表共享出来的目录

192.168.43.0/24

允许192.168.43.0/24的网络访问此共享。

rw

表示权限 读写

sync

表示同步写入

no_root_squash

表示客户机以root访问时赋予本地root权限

启动服务
systemctl enable nfs
systemctl start nfs

客户端配置

安装服务

yum install nfs-utils -y

搜索NFS

showmount -e 192.168.43.1 Export list for 192.168.43.1:
/root/nfs 192.168.43.1/24

挂载目录
mkdir /nfs
mount 192.168.43.1:/root/nfs /nfs
showmount -a 192.168.43.1

All mount points on 192.168.43.1:
192.168.43.13:/root/nfs

取消挂载

umount /nfs/

命令帮助

showmount -e 可以查看本机发布的共享目录
在客户机 showmount -e 服务端ip 可以查看服务器的目录

客户端命令:
showmount -e 192.168.43.1:查询NFS共享状态
showmount -a 192.168.43.1:显示已经与客户端建立连接的目录信息

挂载命令(需要安装nfs-utils):
mount 192.168.43.1:/root/nfs /nfs

如果报错
clnt_create: RPC: Program not registered
解决方法:
在服务器端输入
rpc.mountd