目录
引言
本文将根据实验穿插概念对nfs进行介绍,并且详细讲解了实验步骤
一,NFS的概述
1.1什么是nfs
NFS(Network File System)是一种网络文件系统协议,用于在计算机网络中共享文件和目录。它允许在不同的计算机系统之间共享文件和目录,就像它们是本地文件一样。NFS最初由Sun Microsystems开发,并在许多操作系统中得到支持,包括Unix、Linux和Windows。使用NFS,用户可以通过网络访问远程计算机上的文件,就像这些文件位于本地计算机上一样。这对于跨多个计算机的协作工作和集中存储文件非常有用。
1.2nfs可以干什么
NFS(Network File System)可用于在计算机网络中共享文件和目录,它可以实现将文件系统或目录的内容导出为共享,以供其他计算机通过网络访问。使用NFS,用户可以通过网络访问远程计算机上的文件和目录,就像这些文件和目录位于本地计算机上一样,这对于跨多个计算机的协作工作和集中存储文件非常有用。
NFS的优点:
1.方便: 使用NFS可以方便地共享文件和目录。
2.通用性: NFS可在多个计算机和操作系统之间实现通用性。
3.灵活性: NFS可在网络上实现动态和虚拟文件系统的挂载。
4.可扩展性: NFS可通过添加新的文件服务器实现系统可扩展性。
二,NFS相关应用及配置
2.1nfs相关软件包
在redhat9 上面nfs服务依赖于nfs-utils,rpcbind这两个软件包进行提供服务
yum install nfs-utils rpcbind -y
2.2nfs的基础配置
2.2.1 /etc/exports # nfs所在的主配置文件2.2.2nfs的工作过程1.在启动 NFS 之前,需要先启动 RPC(Remote Procedure Call 远程过程调用)服务。RPC 通过监听固定的端口号(默认是端口 111),接收客户端的请求,并为每个请求返回正确的服务端口号。
2.当服务器启动 NFS 时,它会随机选取数个端口号,并向 RPC 注册这些端口号与相应的 NFS 功能进行关联。这样 RPC 就知道了每个 NFS 功能所对应的端口号。
3.然后,RPC 将这些端口号通知给客户端,让客户端可以连接到服务器上的正确端口来访问相应的 NFS 功能。
4.需要注意的是,RPC 管理的服务在重新启动后,之前注册的数据会丢失。因此,在 RPC 重新启动之后,所有受其管理的服务都需要重新启动,并重新向 RPC 注册相应的端口号与功能的对应关系。这样才能保证客户端能够正确地访问到这些服务。因此,在进行 NFS 启动时,需要先启动 RPC,然后再启动 NFS,以确保正确的注册和通信。
三,实验联系
3.0环境配置
通过实验练习对nfs服务进行介绍
1、开放/nfs/shared目录,供所有用户查询资料
2、开放/nfs/upload目录,为192.168.91.0/24网段主机可以上传目录, 并将所有用户及所属的组映射为nfs-upload,其UID和GID均为210
3、将/home/tom目录仅共享给192.168.91.138这台主机,并只有用户tom可以完全访问该目录
3.1搭建nfs服务器
1.mount /dev/sr0 /mnt #先进行挂载
yum install nfs-utils rpcbind -y #进行软件安装
2. systemctl start nfs-server #开启服务
vim /etc/exports #编辑文件
/nfs/shared *(ro) #分享/nfs/shared 文件及文件下的内容 并且接收方只有读权限
/nfs/upload 192.168.91.0/24(rw,all_squash,anonuid=210,anongid=210)
#分享/nfs/upload 并且指定的主机为192.168.91.0网段的,有读写权限,言下之意就是可以上传文件并将
所有用户及所属的组映射为nfs-upload,其UID和GID均为210
/home/tom 192.168.91.132(rw) #将/home/tom目录仅共享给192.168.10.130这台主机,并且他
有读写权限
#完成配置后开始建文件
3. mkdir /nfs/{shared, upload} -pv #建文件
touch /nfs/{shared, upload}/{1..5} #往文件里面编写内容
mkdir /home/tom #建立文件
useradd -r -u 210 nfs-upload # 创建了一个名为 “nfs-upload”,UID 为 “210” 的系统用户。
useradd tom ---id tom(1114) #指定添加用户tom,并指定其id为1114
exportfs -ra
#将配置文件做导出处理,因为以后当文件呈直线型上升时重启整个服务效率低下,所以做导出处理
4.firewall-cmd --permanent --add-service=nfs #防火墙允许nfs服务
firewall-cmd --permanent --add-service=rpc-bind #防火墙允许rpc-bind服务
firewall-cmd --permanent --add-service=mountd #防火墙允许mountd服务
3.2搭建nfs客户机
地址:192.168.91.138(客户机)
1.配置环境
systemctl stop firewalld #为了直观看设置结果直接关闭防火墙
setenforce 0 #同上,直接将该服务调成0
2.showmount -e 192.168.91.132 #提前检测其是否可以正常挂载
mkdir /1 /2 /3 #建文件,做测试用
mount 192.168.91.132:/nfs/shared /1 #将该目录挂载到相应的目录下,并且客户端只有读权限
mount 192.168.91.132:/nfs/upload /2 #将该目录挂载到相应的目录下,并且客户端有读写权限,就是可以上传文件
mount 192.168.91.132:/home/tom /3 #除了1114用户 其他用户对该目录没有任何权限。
3.3测试nfs实验结果
1.只能读取文件不能上传
[root@localhost 2]# cd /1
[root@localhost 1]# ll
总用量 0
-rw-r--r--. 1 root root 0 11月 23 15:01 1
-rw-r--r--. 1 root root 0 11月 23 15:01 2
-rw-r--r--. 1 root root 0 11月 23 15:01 3
-rw-r--r--. 1 root root 0 11月 23 15:01 4
-rw-r--r--. 1 root root 0 11月 23 15:01 5
2.即可以读取又能上传
[root@localhost upload]# ll
总用量 0
-rw-r--r--. 1 root root 0 11月 23 15:01 1
-rw-r--r--. 1 root root 0 11月 23 15:01 2
-rw-r--r--. 1 root root 0 11月 23 15:01 3
-rw-r--r--. 1 root root 0 11月 23 15:01 4
-rw-r--r--. 1 root root 0 11月 23 15:01 5
-rw-r--r--. 1 nfs-upload nfs-upload 0 11月 24 21:04 bbb
[root@localhost 2]# ll
总用量 0
-rw-r--r--. 1 root root 0 11月 23 15:01 1
-rw-r--r--. 1 root root 0 11月 23 15:01 2
-rw-r--r--. 1 root root 0 11月 23 15:01 3
-rw-r--r--. 1 root root 0 11月 23 15:01 4
-rw-r--r--. 1 root root 0 11月 23 15:01 5
-rw-r--r--. 1 210 210 0 11月 24 21:04 bbb
[root@localhost ~]# cd /3
bash: cd: /3: 权限不够
[tom@localhost root]$ ll /3
总用量 0
drwxr-xr-x. 2 root root 6 11月 24 19:13 1
drwxr-xr-x. 2 root root 6 11月 24 19:13 2
drwxr-xr-x. 2 root root 6 11月 24 19:13 3
drwxr-xr-x. 2 root root 6 11月 24 19:13 4
drwxr-xr-x. 2 root root 6 11月 24 19:13 5
四,总结
该实验的方法总结,先开启nfs的相关服务,使其可以正常运行、,然后搭建底层环境,关闭防火墙相关功能,然后进nfs的主服务路径,添加要分享的目录文件及相关的用户控制等相关参数的设置,然后建立文件,开启相关权限,因为本次实验文件量不是很大,所以配置完成后重启服务还是用新方法(exportfs -ra)导出都可,但是如果后期实验量增大的话,为提升效率还是建议使用exportfs -ra,然后进客户端,先测试是否可以正常挂载,然后建议第一步也先关闭防火墙,重启nfs服务相关工作,在测试挂载,然后挂载,在按照实验要求一 一测试结果即可。