如何在CentOS上设置NFS服务器

时间:2020-02-23 14:39:00  来源:igfitidea点击:

NFS或者网络文件系统是一种分布式文件协议,允许我们通过网络与其他人共享文件甚至是整个目录。
它建立了一个服务器 - 客户端环境,客户机计算机可以访问NFS服务器共享的数据,就像在本地安装的那样。

在本教程中,我们将通过详细的安装说明设置在CentOS上的NFS服务器。
教程逐步将介绍如何在服务器端以及客户端设置NFS服务器。

在CentOS上设置NFS服务器

我们的测试环境
NFS Server IP address: 10.0.2.15
NFS Client IP address: 10.0.2.16

第1步:安装NFS服务器

首先,我们需要在我们的系统上安装NFS-Util。
它是用作NFS守护程序的NFS服务器包。
要安装它,我们需要在终端中输入以下命令:

$sudo dnf install nfs-utils -y

安装NFS服务器

我们正在运行CentOS 8的清洁安装,并在我们的系统上安装了NFS-Utils。
机器也可能是相同的。
如果没有,那么包装将安装,然后按照我们继续前进到下一步。

既然系统上安装了NFS-Utils,则需要启动NFS-Server服务,配置它在系统启动时自动启动,并最终验证其状态是否要检查所有内容是否按预期工作。

为此,我们需要在终端中输入以下命令:

$sudo systemctl start nfs-server.service
$sudo systemctl enable nfs-server.service
$sudo systemctl status nfs-server.service

检查NFS服务器状态

active标志意味着NFS服务器正好工作。
我们应该注意,通过上述命令也激活运行NFS服务器或者安装NFS共享所需的所有相关服务。
这些服务包括NFSD,NFS-IDMAPD,RPCBIND,RPC.MountD,锁定,RPC.STATD,RPC.RQUOTAD和RPC.IDMAPD。

此外,如果我们有兴趣,这是NFS服务器配置文件的地址:

  • /etc/nfs.conf这是NFS守护程序和工具的主要配置文件。
  • /etc/nfsmount.conf这是NFS安装配置文件。

第2步:创建和导出NFS文件系统

既然我们已设置NFS服务器,则是时候在客户端系统中可以访问的服务器上创建共享文件系统了。
对于本教程,我们将使用以下命令创建目录/mnt/nfs_share/docs:

$sudo mkdir -p /mnt/nfs_share/docs

接下来,为了避免NFS共享目录上的任何文件限制,我们将使用以下命令配置目录所有权:

$sudo chown -R nobody: /mnt/nfs_share/docs

这允许客户端系统在共享目录中创建任何文件,而无需面对任何权限问题。
此外,如果要启用读取,写入和执行到NFS共享文件夹的所有权限,则可以使用以下命令执行此操作:

$sudo chmod -R 777 /mnt/nfs_share/docs

NFS共享文件夹

对于要进行的更改,我们需要使用此命令重新启动NFS守护程序:

$sudo systemctl restart nfs-utils.service

现在是时候导出它,以便客户端系统可以访问它。
为此,我们需要编辑/etc/Exports文件。
在编辑文件时,我们可以授予仅访问单个客户端或者多个客户端的访问,以及整个子网。

如果我们希望授予对整个子网的访问,则需要使用以下语法:

/mnt/nfs_share/docs subnet (rw,sync,no_all_squash,root_squash)

这里"子网"需要用系统的子网替换。
否则,我们可以一次指定多个客户端,使用此语法在单独的行上指定:

/mnt/nfs_share/docs client_IP_1 (rw,sync,no_all_squash,root_squash)
/mnt/nfs_share/docs client_IP_1 (rw,sync,no_all_squash,root_squash)

以下是使用命令中使用的其他参数以及它们的意思:

  • RW - 此参数为NFS共享文件/文件夹提供读写权限。
  • 同步 - 此参数要求在应用之前首先进行磁盘的更改。
  • no_all_squash - 此参数将从与UID和GID上的客户端请求中的所有UID和GID映射到NFS服务器上的所有UID和GID。
  • root_squash - 该参数将从客户端上的root用户映射到匿名UID/GID的请求。

使用我们的设置,我们将使用IP 10.0.2.16授予对我们的客户端计算机的访问权限。
为此,我们将首先使用此命令打开/etc /导出文件。

$sudo vi /etc/exports

接下来,我们需要在文件中添加以下行:

/mnt/nfs_share/docs 10.0.2.16(rw,sync,no_all_squash,root_squash)

完成后,保存并退出文件。
现在,使用CAT命令确认该条目已注册。
为此,请在终端中输入以下命令:

cat /etc/exports

现在是我们导出上面创建的文件夹的时间,因此它可以使用客户端系统。
为此,我们需要使用以下命令:

$sudo exportfs -arv

其中-a选项意味着将导出所有目录。
-r选项将重新导出所有目录。
最后,-V选项将显示详细输出。

但是,只是为了确保导出列表是一个 - 好的,我们也会运行此命令:

$sudo exportfs -s

我们已成功创建并导出了我们的NFS共享文件。

第3步:为NFS服务器设置防火墙规则

我们的NFS服务器设置完成。
唯一还有唯一的事情是配置防火墙规则,以便它允许NFS服务。

这包括以下三种服务NFS,RPC-BIND和MOUNTD。
要允许这些服务通过防火墙,我们需要在终端中输入以下命令:

$sudo firewall-cmd --permanent --add-service=nfs
$sudo firewall-cmd --permanent --add-service=rpc-bind
$sudo firewall-cmd --permanent --add-service=mountd

一旦完成,确保重新加载防火墙以使更改生效。
要重新加载防火墙,请使用此命令:

$sudo firewall-cmd --reload

使用防火墙配置,是时候设置NFS客户端系统。

如何在CentOS 8上设置NFS客户端系统

以下是如何在CentOS 8上设置NFS客户端系统的步骤步骤。

第1步:安装NFS客户端包

首先,我们需要安装必要的软件包,以访问NFS服务器中的NFS共享文件夹。
为此,请在终端中输入以下命令:

$sudo dnf install nfs-utils nfs4-acl-tools -y

接下来,我们将使用此命令在服务器上显示已挂载的NFS共享文件夹:

$showmount -e 10.0.2.15

第2步:将远程NFS共享安装在服务器上

我们需要创建一个我们将使用挂载NFS共享的目录。
为此,请使用以下命令:

$sudo mkdir p /mnt/client_share

要安装在本地客户端系统上的远程NFS共享目录,我们需要使用以下命令。

$sudo mount -t nfs 10.0.2.15 :/mnt/nfs_shares/docs /mnt/client_share

其中10.0.2.15是NFS服务器的IP地址。
要验证已挂载远程NFS共享,可以使用以下命令:

$sudo mount | grep -i nfs

最后,要使挂载共享稳定,即使重新启动后,我们需要编辑/etc/fstab文件,然后添加以下条目:

192.168.2.102:/mnt/nfs_shares/docs /mnt/client_share nfs defaults 0 0

第3步:测试NFS服务器和客户端设置

通过所有上述步骤后,我们已成功配置了使用NFS的客户端 - 服务器连接。
但是,我们需要检查设置是否正常工作,然后我们可以每天调用它。

为此,我们将首先需要在NFS服务器共享目录中创建一个测试文件,然后检查是否存在于客户端NFS挂载目录中。
首先,让我们使用以下命令在NFS服务器目录中创建测试文件:

$sudo touch /mnt/nfs_shares/docs/server_nfs_file.txt

返回到客户端,然后在终端中输入此命令以检查测试文件是否可用。

$ls -l /mnt/client_share/

如果我们看到文件,那么这意味着NFS连接正常工作。