NFS(Network File System 网络文件服务),是一种基于 TCP/IP 传输的网络文件系统协议,最初由 Sun 公司开发。
NFS 服务的实现依赖于 RPC(Remote Process Call,远端过程调用)机制,通过使用 NFS 协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源。(远端过程调用:自己没有这种功能,调用别人的功能) NFS 也是 NAS 存储 设备必然支持的一种协议,以完成远程到本地的映射过程。
在 CentOS 7 系统中,需要安装 nfs-utils、rpcbind 软件包来提供 NFS 共享服务,前者用于 NFS 共享发布和访问,后者用于 RPC 支持。手动加载 NFS 共享服务时,应该先启动 rpcbind,再启动 nfs。
软件包 (包括服务器端和客户端):
检查软件包的下载:rpm -q rpcbind nfs-utils
软件包下载:yum -y install nfs-utils.x86_64
NFS 的配置文件为/etc/exports
格式为: 共享的目录位置 客户机地址(权限选项)
客户机地址 | 可以是主机名、IP 地址、网段地址,允许使用“*”、“?”通配符。 |
“rw” | 表示允许读写,“ro” 表示为只读。 |
sync | 表示同步写入到内存与硬盘中。 |
no_root_squash | 表示当客户机以root身份访问时赋予本地root权限(默认是root_squash)。 |
root_squash | 表示客户机用root用户访问该共享目录时,将root用户映射成匿名用户。 |
all_squash | 所有访问用户都映射为匿名用户或用户组 |
async | 将数据先保存在内存缓冲区中,必要时才写入磁盘。 |
subtree_check(默认) | 若输出目录是一个子目录,则nfs服务器将检查其父目录的权限。 |
no_subtree_check | 即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率。 |
- [root CXK ~] mkdir -p /opt/nfstest
- [root CXK ~] chmod 777 /opt/nfstest
- [root CXK ~]
- vim /etc/exports
-
- /opt/nfstest 192.168.136.0/24(rw,sync,no_root_squash)
第四步:服务端进行nfs服务启动
- systemctl start nfs
- systemctl enable nfs
查看本机发布的共享服务
showmount -e (后面可以跟指定的IP)
第五步:客户端安装nfs服务,并且打开服务
客户端查看服务端发布的共享服务(客户端和服务端实验前都需要关闭防火墙和seLinux)
- mkdir /nfsshare
- mount 192.168.136.110:/opt/nfstest /nfsshare
- [root CXK2 ~] vim /etc/fstab
- [root CXK2 ~] mount -a
- [root CXK2 ~]
保存退出后,进行 mount -a 进行挂载刷新
nfs是一种适合在局域网的共享目录服务,不适合跨网段使用(会存在极大的安全隐患)