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 #测试是否共享成功