Linux搭建NFS服务器

前言

NFS(Network File System,网络文件系统)是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过 TCP/IP 网络共享资源,主要在 unix 系列操作系统上使用。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
由于 NFS 支持的功能比较多,而不同的功能都会使用不同的程序来启动,每启动一个功能就会启用一些端口来传输数据,因此 NFS 的功能所对应的端口并不固定,如此一来,客户端需要知道服务器端的相关端口才能够连接。这个时候需要介绍RPC。
RPC(Remote Procedure Call,远程过程调用)的服务。由于当服务器在启动 NFS 时会随机选取数个端口号,并主动向 RPC 注册,所以 RPC 知道每个 NFS 功能所对应的端口号,RPC 将端口号通知给客户端,让客户端可以连接到正确的端口上去。RPC采用固定端口号 port 111 来监听客户端的需求并向客户端响应正确的端口号。

在启动NFS之前,要先启动RPC,否则NFS会无法向RPC注册。另外,RPC若重新启动,原来注册的数据会消失不见,因此RPC重启后,它管理的所有服务都需要重新启动以重新向RPC注册。

NFS 的使用

RPC 的主程序:rpcbind
NFS 的主程序:nfs-utils
安装:

yum install rpcbind -y
yum install nfs-utils -y

在这里插入图片描述
在这里插入图片描述
nfs-utils 的服务名叫 nfs-server
在低版本里需要先启动 rpcbind 后启动 nfs-server,在高版本里启动 nfs-serverrpcbind 自动被启动
在这里插入图片描述
他的主配置文件是 /etc/exports(不一定存在,需自己添加)
在这里插入图片描述
/usr/sbin/exportfs 是维护 NFS 共享资源的命令,可以使用该命令重新共享 /etc/exports 更新的目录资源、将 NFS server 共享的目录卸载或重新共享等


我们先来做一个简单的只读共享
创建一个 /data 目录:mkdir /data
在这里插入图片描述
编辑配置文件:vim /etc/exports
语法:文件名 客户端IP(权限)

参数值说明
rwro该目录共享的权限是可读写还是只读,但最终能否读写,还是与文件系统的rwx有关
syncasyncsync代表数据会同步写入到内存与硬盘中,async则代表数据会先暂存于内存当中,而非直接写入硬盘
no_root_squashroot_squash若客户端在共享目录里创建的文件的所属者和所属组是 root 用户和 root 组,那么显示文件的属主和属组时有以下两种情况:no_root_squash表示,文件的所属者和所属组是 root 用户和 root 组;root_squash表示将 root 用户和组映射为匿名用户和组(默认设置)。
all_squashno_all_squashall_squash:客户端所有用户创建文件时,客户端会将文件的用户和组映射为匿名用户和组;no_all_squash:客户端普通用户创建的文件的 UID 和 GID 是多少,服务端就显示为多少(默认设置)
anonuid=anongid=将文件的用户和组映射为指定的 UID 和 GID ,若不指定默认为 65534(nfsnobody)

在这里插入图片描述
在该目录中写入内容:echo this is chi > /data/file
重启服务:systemctl restart nfs-server
在这里插入图片描述
NFS 服务器关闭防火墙:systemstl stop firewalld
在这里插入图片描述
用另一台主机查看一下该 NFS 服务器:showmount -e 192.168.32.128
在这里插入图片描述
在客户端创建挂在点:mkdir -p /client/data1
在这里插入图片描述
挂在:mount 192.168.32.128:/data data1 / df -h查看
在这里插入图片描述
挂载成功
由于这是一个只读的共享,所有只能读取,不能创建或编辑
在这里插入图片描述

搭建一个 NFS 服务器

接下来我们搭建一个 NFS 服务器:

  1. 开放 /nfs/shared 目录,供所有用户查询资料;
  2. 开放 /nfs/upload 目录,该目录为 172.24.8.0/24 网段的主机的数据上传目录,并将所有该网段主机上传文件的所属者和所属组映射为 nfs-upload ,其 UID 和 GID 为 2001

  1. 创建目录
    /nfs/shared 目录只供查询,故不需要其他权限
    在这里插入图片描述

  2. 创建 nfs-upload 用户:useradd nfs-upload
    在这里插入图片描述

  3. 编写配置文件:vim /etc/exports
    在这里插入图片描述

  4. 重启服务:systemctl restart nfs-server
    在这里插入图片描述

  5. 客户端访问 NFS 服务器:showmount -e 192.168.32.128
    在这里插入图片描述
    客户端测试
    在这里插入图片描述
    服务端查看用户创建文件
    在这里插入图片描述

  • 10
    点赞
  • 80
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

1ta-chi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值