NFS网络文件系统

时间:2022-01-28 10:31:58

FFS服务端概述

NFS,是Network File System的简写,即网络文件系统。网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS; NFS允许一个系统在网络上与他人共享目录和文件

 NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统中来看,那个远程主机的目录就好像是自己的一个磁盘分区一样,在使用上相当便利;

模式: C/S 模式

端口: 

NFS是Net File System的简写,即网络文件系统.NFS通常运行于2049端口。

 

部署NFS

 

  由于在使用NFS服务进行文件共享之前,需要使用RPC(Remote Procedure Call,远程过程调用)服务将NFS服务器的IP地址和端口号等信息发送给客户端。因此,在启动NFS服务之前,还需要顺带重启并启用rpcbind服务程序。

步骤

  首先服务器端先将自己要共享的文件和要共享给的IP指定,例如我们在NFS服务器设置好一个共享目录/home/public后,其他的有权访问NFS服务器的NFS客户端就可以将这个目录挂载到自己文件系统的某个挂载点,这个挂载点可以自己定义,至于客户端对于这个文件的权限(只读或者读写等)是在服务器端进行设置的。下面我们来详细的说一下流程:

 

第一步、下载安装(客户机和服务端都必须安装

要部署NFS服务,必须安装下面两个软件包:nfs-utils:NFS主程序   |   rpcbind:PRC主程序;  

  既然NFS是通过网络来进行服务器端和客户端之间的数据传输,那么两者之间要传输数据就要有想对应的网络端口,NFS本身是没有提供信息传输的协议和功能的,那么客户端又是如何知道NFS服务器端到底使用的是哪个端口呢?这时就需要通过远程过程调用(Remote Procedure Call,RPC)协议来实现了!

  所以要安装 NFS 的同时也要安装 RPC,rpcbind是一个RPC服务,主要是在nfs共享时候负责通知客户端,服务器的nfs端口号的。简单理解rpc就是一个中介服务。

[root@songqi ~]# yum install rpcbind nfs-utils -y

第二步、配置文件

进入NFS 的配置文件 /etc/exports

[root@localhost ~]# vim /etc/exports
   1 /songqi 192.168.5.3(rw) 192.168.5.4(rw) 192.168.5.99(rw)

/songqi    表示共享的文件,rw表示所赋予的权限

/data  *(rw)   表示给所有的ip共享vim

/data  192.168.10.0/24(rw)   把网段共享出去 24表示掩码

 

nfs也可以共享多个目录

/ken 192.168.64.5(rw)
/test 192.168.64.7(rw)

()里的参数可以有

rw

表示可读写

ro

Read-only表示只能读权限

Sync

请求或者写入数据时,数据同步写入到NFS server的硬盘中后才会返回

no_root_squas

访问nfs server共享目录的用户如果是root的话,它对该目录具有root权限。这个配置原本为无盘用户准备的。用户应避免使用!

root_squash

对于访问NFS server共享目录的用户,如果是root的话会被压缩成为nobody用户身份。

all_squash

不管访问nfs server共享目录的用户身份如何包括root,它的权限都将被压缩成为匿名用户,同时他们的udi和gid都会变成nobody或nfsnobody账户的uid,gid。在多个nfs客户端同时读写nfs server数据时,这个参数很有用可以确保大家写入的数据的权限是一样的。

但不同系统有可能匿名用户的uid,gid不同。因为此处我们需要服务端和客户端之间的用户是一样的。比如说:服务端指定匿名用户的UID为2000,那么客户端也一定要存在2000这个账号才可以

anonuid

anonuid就是匿名的uid和gid。说明客户端以什么权限来访问服务端,在默认情况下是nfsnobody。Uid65534.

anongid

同anongid,就是把uid换成gid而已

 

第三步  更改属主属组

客户端访问服务端默认是使用nfsnobody这个用户来进行访问的

[root@songqi ~]# chown -R nfsnobody: /songqi

 

第四步  重启rpcbind、nfs服务

在centos7里,nfs服务依赖于rpcbind服务,故应在rpcbind服务启动成功后再启动nfs服务

[root@songqi ~]# systemctl restart rpcbind
[root@songqi ~]# systemctl restart nfs

 

第五步  客户端挂载使用

在客户端上不能直接使用服务端共享的目录,就像一块磁盘必须接到电脑上才能使用一样吗,必须要挂载在客户端的本地文件上

[root@host1 ~]# showmount -e 172.20.10.6     #查看共享(后面加的IP地址是服务端IP)
Export list for 192.168.5.2:
/songqi 192.168.5.0/24                  #192.168.5.0网段的主机均可以获取共享文件
[root@host1 ~]# mkdir /test                       #创建挂载目录
[root@host1 ~]# mount -t nfs 192.168.5.2:/songqi /test  #将服务端/songqi挂载到客户端的/test
[root@host1 ~]# mkdir /test/ken            #测试是否共享成功