如何在CentOS上设置NFS服务器
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连接正常工作。