Linux中怎么搭建NFS服务器(附实验):

Linux中怎么搭建NFS服务器:

一、NFS介绍:

1、什么是NFS?

NFS(Network File System)的缩写,它最大的功能是可以通过网络,让不同的机器,不同的操作系统可以共享彼此的文件。

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

NFS使用的是C/S架构

2、NFS的优点:

序号NFS的优点:
1可以把服务器的文件像本地一样的操作,很方便
2NFS服务器对系统资源占用也少
3NFS可以支持很多其他服务,比如kickstart(kickstart 是无人值守,网络批量安装服务),NIS等等
4还有很多,反正用linux和UNIX就不会离开NFS

3、NFS的守护进程:

NFS的守护进程注解
rpc.nfsd它是基本的NFS守护进程,主要功能是管理客户端是否能够登录服务器
rpc.mountd它是RPC安装守护进程,主要功能是管理NFS的文件系统。当客户端顺利通过rpc.nfsd登录NFS服务后,在使用NFS服务所提供的文凭前,还必须通过文件使用权限的验证。它会读取NFS的配置文件/etc/exports来对比客户端权限。
rpcbind(6.0/7.0版本)portmap的主要功能是进行端口映射工作。当客户端尝试连接并使用RPC服务器提供的服务(如NFS服务)时,portmap会将所管理的与服务对应的端口提供给客户端,从而使客户可以通过该端口向服务器请求服务。

4、NFS的访问权限:

设置输出目录只读:ro
设置输出目录读写:rw

5、用户映射选项:

选项注解
all_squash(默认设置)将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody)
no_all_squash同上但相反
root_squash(默认设置)root用户及所属组都映射为匿名用户或用户组
no_root_squash同上但相反
anonuid=xxx将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx)
anongid=xxx将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx)
其它选项
secure(默认设置)限制客户端只能从小于1024的tcp/ip端口连接nfs服务器
insecure允许客户端从大于1024的tcp/ip端口连接服务器
sync将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性
async将数据先保存在内存缓冲区中,必要时才写入磁盘
wdelay(默认设置)检查是否有相关的写操作,如果有则将这些写操作 一起执行,这样可以提高效率
no_wdelay若有写操作则立即执行,应与sync配合使用
subtree(默认设置)若输出目录是一个子目录,则nfs服务器将检查其父目录的权限
no_subtree即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率

6、NFS的常用目录:

目录注解
/etc/exportsNFS的主要配置文件(该文件可能不存在),可能要使用vi手动建立,然后在文件里面写入配置内容
/usr/sbin/exportfs维护NFS共享资源的命令,一般用的很少
/usr/sbin/showmount主要用于客户端,查看NFS共享出来的目录资源
/var/lib/nfs/*tab其中etab:记录了NFS分享出来的目录的完整权限设定值。
另一个是xtab:记录曾经连接到此NFS主机的相关客户端数据

二、搭建NFS服务器:

说明:本次实验环境为Redhat7.2版本,使用的两台虚拟机:
一台作为服务端(NFS)IP地址为:192.168.0.35
一台作为客户端(Client)IP地址为:192.168.0.36
NFS的包默认是安装过的,这里我们就直接开始搭建吧。

1、服务端:

(1)使用命令:mkdir /public
(2)编辑exports文件:vim /etc/exports,并写入:挂载目录和用户权限
/public 192.168.0.0/255.255.255.0(rw)
(3) 改变目录权限:chmod 777 /public/
(4)然后启动:systemctl restart nfs
当然我们可以放一写文件进去,我这里什么都没有存放。

2、客户端:

(1)客户端为了方便管理起见,这里也创建一个目录。使用命令:mkdir /PUBLIC
(2)使用showmount -e 192.168.0.35 查看这台服务器的挂载点都有哪些。
在这里插入图片描述
(3)使用:mount 192.168.0.35:/public /PUBLIC命令将它挂载到本地的PUBLIC目录。
(4)使用df -h 命令查看磁盘分区情况,我们可以看到已经挂在上了。
在这里插入图片描述(5)接下来我们切换到挂载目录,然后写入一个文件进去。(我们可以看到默认以匿名形式:nfsnobody展现。
在这里插入图片描述

三、实验:

架设一台NFS服务器,并按照以下要求配置输出目录:
①开放 /nfs/shared 目录,供所有用户查阅资料。
②开放 /nfs/upload 目录作为 192.168.0.0/24 网段的数据上传目录,并将所有用户及所属的用户组都映射为 nfs-upload ,其UID与GID均为 210
③将 /home/tom 目录仅共享给 192.168.0.36 这台主机,并且只有用户tom可以完全访问该目录。

1、首先我们先创建文件夹,接着检测一下是否存在ID为210的用户
在这里插入图片描述
(1)在客户端也创建一个用于专门挂载服务端的文件夹:
mkdir /nfsshared
mkdir /nfsupload
(2)在服务端 /nfs/shared 写入一个文件:
在这里插入图片描述
(3)由于文件夹具有写权限,因此修改权限为777
在这里插入图片描述
2、接着我们创建一个UID为210的用户:useradd -u 210 nfs-upload
3、然后修改配置文件如下:
在这里插入图片描述
(我们先做前两个测试一下,剩下一个留着最后做)
4、重启服务:systemctl restart nfs
5、客户端进行挂载:

[root@Client ~]# mount 192.168.0.35:/nfs/shared /nfsshared/
[root@Client ~]# mount 192.168.0.35:/nfs/upload /nfsupload/

6、客户端查看是否挂上,使用df -h 命令,或者mount命令
在这里插入图片描述
7、客户进行测试:
(1)切换到 /nfsshared
我们发现,果然成功查看,但是写入却失败了。
在这里插入图片描述
(2)切换到 /nfsupload
①尝试写入一个文件,直接成功。
在这里插入图片描述

②服务端进行查看用户在这里插入图片描述
上面用到的是root用户,我们切换到普通用户试一下吧。
①普通用户写入一个文件
在这里插入图片描述
②服务端再查看一下:
在这里插入图片描述
8、最后一步;
(1)创建用户tom,然后再tom的家目录下写入一个文件,之后再编辑配置文件,将它共享出去。
在这里插入图片描述
(2)之后重启服务:exportfs -r
(3)客户端创建专门的目录进行挂载,我们挂载之后使用root用户发现,权限被拒绝,之后我们创建了tom用户之后,就可以挂载上了。
注意:创建的tom的UID要一样,NFS就是基于UID、GID进行映射的。
在这里插入图片描述
最后,我们用tom用户写入一个文件试试,没问题,tom确实有所有的权限。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值