目录

前言

配置文件

工作原理

NFS服务器的配置

查看服务器是否安装

查看服务器状态

开启服务

编写配置文件

客户端挂载



前言

NFS(Network File System)是一种分布式文件系统协议,它允许网络中的不同计算机共享文件和目录,就像它们是本地存储的一部分一样。主要用于UNIX/Linux系统之间的文件共享。


配置文件

/etc/exports


工作原理

NFS的工作原理基于客户端-服务器架构。服务器端配置并启动相关服务进程,通过/etc/exports文件定义哪些目录可以被哪些客户端以哪种权限访问。客户端访问服务器端的共享资源时,会通过Portmapper(或rpcbind)服务查询到NFS服务器所监听的实际端口,并向这些端口发送挂载请求。一旦服务器验证并批准该请求,客户端就可以将远端的共享目录挂载到本机的一个指定路径下。这时,访问服务端的共享文件,就如同访问本地文件一样。


NFS服务器的配置

查看服务器是否安装

rpm -qa | grep nfs

查看服务器状态

systemctl status nfs

开启服务

systemctl start nfs

编写配置文件

vim /etc/exports

配置文件打开后,需要自己添加配置

格式为:共享目录或文件的路径   客户端IP/IP段  (选项)

下表为一些基本的选项和说明

访问权限ro只读访问权限
rw读写访问权限
数据同步sync

数据同步写入到内存与硬盘中

async数据先暂存于内存当中,而非直接写入硬盘
用户映射root_squash将客户端的 root 用户映射为匿名用户 nfsnobody
no_root_squash保留客户端root用户的权限
all_squash将所有用户映射为匿名用户
anonuid设定匿名用户的UID
anongid设定匿名用户的GID
安全设置secure限制客户端仅能通过小于1024的TCP/IP端口连接
insecure允许客户端从大于1024的端口连接
写入延迟wdelay默认设置,归组写入,提高效率
no_wdelay立即写入,应与 async 配合使用
子目录检查subtree_check如果共享子目录,则检查父目录权限(默认)
no_subtree_check不检查父目录权限,提高性能
子目录共享hide不共享子目录
no_hide共享子目录

比如:服务端想要共享给客户端的目录为home目录下的files目录

那么服务端配置文件应该根据具体情况添加类似如下的语句:

#任意IP的客户端都可以以只读的形式访问/home/files:
/home/files *(ro)

#只允许IP为192.168.100.88的客户机访问/home/filws:
/home/files 192.168.100.88(rw)

#允许192.168.100.0这个网段的用户以读写从形式访问/home/files并且不限制用户身份:
/home/files 192.168.100.0/24(rw,all_squash)

#只允许uid和gid都为900且在192.168.100.0这个网段的用户以读写形式访问/home/files:
/home/files 192.168.100.0/24(rw,anonuid=900,anongid=900)

具体怎么配置,根据实际需求来,总之,结构都一样:目录或文件   ip(选项)

这里我们演示允许192.168.100.0网段的用户已读写的方式访问/home/files

/home/files 192.168.100.0/24(rw)

编辑好配置文件后,需要配置防火墙允许nfs开启服务,然后重启防火墙,重启nfs服务,还可以看一下nfs状态(如果配置文件出错了,重启nfs并不会报错,但nfs状态可能会标红,影响nfs连接)

firewall-cmd --add-service=nfs --zone=public --permanent
setenforce 0
systemctl restart firewalld
systemctl restart nfs
systemctl status nfs

客户端挂载

这里的挂载,只是一种映射,并不是实际的挂载到了客户端下面

来到客户端,将服务端/home/files目录挂载到自己新建的一个目录:

mkdir /home/guazai
mount -t nfs 192.168.100.2:/home/files ./guazai

值得注意的是NFS共享文件的最终访问权限取决于服务器端配置的共享权限和文件本身的权限。



点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部