一、NFS
1.1 NFS的简介
NFS(Network File System 网络文件服务),是一种基于 TCP/IP 传输的网络文件系统协议,最初由 Sun 公司开发。
NFS 服务的实现依赖于 RPC(Remote Process Call,远端过程调用)机制,通过使用 NFS 协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源。(远端过程调用:自己没有这种功能,调用别人的功能) NFS 也是 NAS 存储 设备必然支持的一种协议,以完成远程到本地的映射过程。
1.2 linux中要使用NFS需要下载的软件包
在 CentOS 7 系统中,需要安装 nfs-utils软件包来提供 NFS 共享服务,前者用于 NFS 共享发布和访问。手动加载 NFS 共享服务时,应该启动 nfs。
软件包 (包括服务器端和客户端):
nfs-utils (nfs端口号 2049/tcp):共享服务
检查软件包的下载:rpm -q nfs-utils
软件包下载:yum -y install nfs-utils.x86_64
1.3 NFS相关配置文件及其配置作用
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服务器也不检查其父目录的权限,这样可以提高效率。 |
二、NFS的实验
第一步:NFS服务器安装 nfs-utils 软件包
第二步 :NFS服务器设置共享目录
[root CXK ~] mkdir -p /opt/nfstest
[root CXK ~] chmod 777 /opt/nfstest
[root CXK ~]
第三步:服务端更改NFS配置,对访问用户进行限制
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)
第六步:客户端挂载nfs共享目录
1. 手动挂载
mkdir /nfsshare
mount 192.168.136.110:/opt/nfstest /nfsshare
2. 自动挂载
[root CXK2 ~] vim /etc/fstab
[root CXK2 ~] mount -a
[root CXK2 ~]
保存退出后,进行 mount -a 进行挂载刷新
三、进行共享文件的测试
1.客户端写入文件
2.服务端读取共享目录中的文件
总结:
nfs是一种适合在局域网的共享目录服务,不适合跨网段使用(会存在极大的安全隐患)