在Ubuntu服务器上设置NFS服务器
NFS,网络文件系统,是一个分布式文件系统协议。
它可以通过网络与其他人共享文件和整个目录。
它允许远程系统上的程序彼此共享和访问信息,就好像它在本地计算机上可用。
NFS在客户端 - 服务器环境中工作。
也就是说,如果要设置NFS以在两个系统之间共享文件,则需要将其中一个配置为服务器,另一个作为客户端。
服务器用作授权的管理员,并授权客户端访问共享数据。
几乎任何数量的客户端都可以访问共享数据,就像本地存储中的任何其他文件或者目录一样简单。
如何在Ubuntu服务器上设置NFS服务器
因此,如果这已经让我们感兴趣,我们将组合在一起进行详细的逐步教程,该教程将指导我们在Ubuntu上安装和设置NFS服务器,以便我们也可以与其他客户端系统开始共享数据。
它被分为部分,第一部分讨论了如何设置主机服务器和第二部分向我们设置如何设置客户端。
对于本教程,我们将使用Ubuntu 20.04 LTS。
配置主机服务器
要设置主机服务器,首先需要安装NFS内核服务器。
完成后,我们可以创建和导出要与所有客户端系统共享的文件和目录。
第1步:安装NFS内核服务器
首先是首先,我们需要在Ubuntu系统上安装NFS内核服务器包,该系统将作为服务器运行的Ubuntu系统。
但在此之前,只是为了确保在此过程中没有任何事情发生了Haywire,让我们更新系统包。
要执行此操作,请在终端中执行以下命令:
$sudo apt update
使用所有系统包更新,它是使用以下命令安装"NFS-Kernel-Server"包时:
$sudo apt install nfs-kernel-server
这也将在系统上安装一些添加软件包,包括设置文件共享所需的"NFS-Common"以及"RPCBind"。
第2步:创建NFS导出目录
使用安装的"NFS-Kernel-Server"包,我们现在可以创建NFS导出目录(简称为"导出目录"),该目录将与所有客户端系统共享。
要执行此操作,请在终端内部执行以下命令。
$sudo mkdir -p /mnt/nfs_share
需要在此目录中创建客户端访问的所有文件。
由于我们希望客户端系统可以完全访问此共享目录,因此我们需要删除限制访问的所有目录权限。
这可以通过以下命令完成:
$sudo chown -R nobody:nogroup /mnt/nfs_share/
完成上面的命令后,请转到下一步。
步骤3:为客户端系统分配NFS服务器访问权限
使用导出目录准备好,我们需要为客户端的系统提供权限来访问主机服务器。
此权限在位于系统/etc文件夹中的"导出"文件中定义。
我们需要编辑此文件并添加一些额外的命令行,以使客户端系统访问导出目录。
因此,通过将此命令输入终端,使用nano编辑器打开它:
$sudo nano /etc/exports
从其中我们可以提供NFS服务器访问单个客户端,多个客户端或者完整子网。
对于此阅读,我们将提供对NFS共享的整个子网访问。
为此,我们需要将此行添加到"导出"文件中。
/mnt/nfs_share subnet(rw,sync,no_subtree_check)
其中我们需要在提供的占位符中替换系统子网。
除此之外,这里的其他部分是什么意思:
RW
:读/写命令sync
:在应用之前先对磁盘进行更改no_subtree_check
:删除子树检查
但是,如果要仅授予单个客户端的访问权限,则可以使用以下语法执行此操作:
/mnt/nfs_share client_IP_1(rw,sync,no_subtree_check)
虽然要添加多个客户端,但我们需要逐一执行以下操作:
/mnt/nfs_share client_IP_1(rw,sync,no_subtree_check) /mnt/nfs_share client_IP_2(rw,sync,no_subtree_check)
使用具有访问NFS服务器的客户端系统,是时候继续下一步。
第4步:导出共享NFS目录
使用上述所有配置,是导出共享NFS目录的时间并使其可用于客户端系统。
使用此命令快速完成这一点:
$sudo exportfs -a
然后重新启动NFS内核服务器以确保所有配置生效。
重新启动NFS.
第5步:允许客户端通过防火墙
即使在客户端访问NFS服务器并导出共享目录之后,如果防火墙阻止,客户端仍然无法访问文件。
因此,我们需要为客户打开防火墙。
Ubuntu PC已经有默认防火墙UFW(简单的防火墙)。
要检查它是否在系统上运行,可以执行以下命令:
$sudo ufw status
如果它显示它不活动,则需要使用此命令将其重新打开:
$sudo ufw enable
但是,如果由于某种原因它未安装在系统上,那么我们可以使用此命令安装它:
$sudo apt install
在Ubuntu系统上安装并启用了UFW并启用了UFW,我们需要配置它,以便它允许访问客户端。
由于我们提供了NFS访问整个子网,因此我们需要使用此命令:
$sudo ufw allow from subnet to any port nfs
但是,如果我们只允许在每次客户端上访问NFS访问,则需要输入以下客户端IP:
$sudo ufw allow from client_IP_1 to any port nfs
那就是它!我们已在服务器计算机上成功安装和配置了NFS服务。
配置客户端系统
接下来,我们需要在客户端系统上安装和设置NFS以访问共享目录。
类似于之前,这里是解决的逐步教程。
第1步:安装NFS-Common Package
在设置NFS共享的客户端系统时,我们需要安装"NFS-Common"包。
就像之前一样,我们应该首先更新系统包,然后使用以下命令安装NFS-Common:
要更新包:
$sudo apt update
要安装NFS-Common Package:
$sudo apt install nfs-common
一旦完成,继续下一步。
第2步:创建一个安装点
接下来,我们需要创建一个挂载点。
它将用于从NFS服务器安装NFS共享文件。
要执行此操作,请在终端中执行此命令:
$sudo mkdir -p /mnt/nfs_clientshare
第3步:在客户端系统上安装NFS共享目录
我们在上述步条中创建的文件夹(如系统上的任何其他文件夹)。
要从主机服务器访问NFS共享目录,我们需要将其安装到此新文件夹:"NFS_CLIENTHARE"。
要执行此操作,首先,我们需要知道NFS服务器的IP地址。
在服务器系统的终端中执行以下命令:
$ifconfig
它会提出网络接口配置。
服务器的IP是在"INET"下给出的IP,在我们的案例中是10.0.2.15.
使用此IP,在NFS客户端的终端中执行以下命令,以最终将NFS共享目录挂载到客户端系统:
$sudo mount 10.0.2.15:/mnt/nfs_share /mnt/nfs_clientshare
第4步:测试连接以查看一切是否正常工作
通过遵循上述步骤,我们已成功创建了用于在服务器系统和多个客户端系统之间共享文件和文件夹的NFS服务器。
所有剩余的是检查一切是否正常工作。
为此,请在服务器上的NFS共享目录中创建一个新文件。
我们可以使用此命令执行此操作:
$cd /mnt/nfs_share/ $touch file1.txt file2.txt file3.txt
完成后,请检查客户端系统以查看这些文件是否使用此命令显示在NFS共享目录中:
$ls -l /mnt/nfs_clientshare/
如果在列表中看到"file1.txt","file2.txt"和"file3.txt"和"file3.txt"的文件,则NFS服务器正在运行,我们现在可以在客户端和服务器系统之间开始共享和接收文件。