当前位置: 首页>>技术教程>>正文


在Ubuntu 18.04 LTS上安装NFS服务器和客户端

,

Ubuntu NFS Server and Client

NFS或网络文件系统是一种分布式文件系统协议,最初是由Sun Microsystems构建的。通过NFS,您可以允许系统通过网络与他人共享目录和文件。在NFS文件共享中,用户甚至程序都可以访问远程系统上的信息,就像驻留在本地计算机上一样。

NFS在client-server环境中运行,在该环境中,服务器负责管理客户端的身份验证,授权和管理,以及特定文件系统内共享的所有数据。授权后,任意数量的客户端都可以访问共享数据,就像它们的内部存储中一样。在Ubuntu系统上设置NFS服务器非常简单。您需要做的就是在服务器和客户端计算机上进行一些必要的安装和配置,一切顺利。

在本文中,我们将逐步说明如何设置NFS服务器和客户端,这将使您能够将文件从一个Ubuntu系统共享到另一个系统。

我们已经在Ubuntu 18.04 LTS系统上运行了本文描述的命令和过程。由于我们使用Ubuntu命令行Terminal(终端)来执行所有操作;您可以通过系统破折号或Ctrl + Alt + T快捷方式打开它。

设置主机服务器

为了设置主机系统以共享目录,我们需要在其上安装NFS内核服务器,然后创建并导出我们希望客户端系统访问的目录。请按照以下步骤操作,以顺利设置主机端:

步骤1:安装NFS内核服务器

在安装NFS内核服务器之前,我们需要通过以下apt命令以sudo的形式使用Internet的系统来更新系统的存储库索引:

$ sudo apt-get update

上面的命令使我们可以通过Ubuntu存储库安装软件的最新可用版本。

现在,运行以下命令以在系统上安装NFS内核服务器:

$ sudo apt install nfs-kernel-server

Install NFS Kernel Server

系统将提示您选择是/否选项,以确认是否要继续安装。请输入Y,然后按Enter键继续,之后软件将成功安装在您的系统上。

步骤2:创建导出目录

我们要与客户端系统共享的目录称为导出目录。您可以根据自己的选择命名。在这里,我们正在系统的mnt(mount)目录中创建名为“sharedfolder”的导出目录。

通过以根用户身份通过​​以下命令,根据需要指定安装文件夹名称,以使用以下命令:

$ sudo mkdir -p /mnt/sharedfolder

Create the Export Directory

因为我们希望所有客户端访问目录,所以将通过以下命令删除导出文件夹的限制性权限:

$ sudo chown nobody:nogroup /mnt/sharedfolder
$ sudo chmod 777 /mnt/sharedfolder

现在,客户端系统上所有组的所有用户都可以访问我们的“sharedfolder”。

Create shared folder

您可以根据需要在导出文件夹中创建任意数量的sub-folders,以供客户端访问。

步骤3:通过NFS导出文件为客户端分配服务器访问权限

创建导出文件夹后,我们将需要向客户端提供访问主机服务器的权限。此权限是通过系统/etc文件夹中的导出文件定义的。请使用以下命令以通过Nano编辑器打开此文件:

$ sudo nano /etc/exports

编辑该文件需要root权限;因此,您将需要在命令中使用sudo。您也可以在任何个人收藏夹文本编辑器中打开文件。

打开文件后,您可以允许访问:

  • 通过在文件中添加以下行来实现单个客户端:
/mnt/sharedfolder clientIP(rw,sync,no_subtree_check)
  • 通过在文件中添加以下几行来实现多个客户端:
/mnt/sharedfolder client1IP(rw,sync,no_subtree_check)
/mnt/sharedfolder client2IP(rw,sync,no_subtree_check)
  • 通过指定客户端所属的整个子网来使用多个客户端:
/mnt/sharedfolder subnetIP/24(rw,sync,no_subtree_check)

在此示例中,我们指定了要授予对导出文件夹(共享文件夹)访问权限的所有客户端的整个子网:

NFS Exports

将所需的行添加到导出文件中,然后通过按Ctrl + X,输入Y,然后按Enter进行保存。

此文件中定义的“rw,sync,no_subtree_check”权限意味着客户端可以执行以下操作:

  • w:读写操作
  • 同步:在应用光盘之前将所有更改写入光盘
  • no_subtree_check:防止子树检查

步骤4:导出共享目录

在主机系统中完成所有上述配置之后,现在是时候通过以下命令以sudo导出共享目录:

$ sudo exportfs -a

最后,为了使所有配置生效,请按如下所示重新启动NFS内核服务器:

$sudo systemctl restart nfs-kernel-server

Create the Export Directory

步骤5:为客户端打开防火墙

重要的步骤是验证服务器的防火墙是否对客户端开放,以便客户端可以访问共享内容。以下命令将防火墙配置为通过NFS授予客户端访问权限:

$ sudo ufw allow from [clientIP or clientSubnetIP] to any port nfs

在我们的示例中,我们通过以下命令提供对客户端计算机整个子网的访问:

$ sudo ufw allow from 192.168.100/24 to any port nfs

Open NFS ports in UFW Firewall

现在,当您通过以下命令检查Ubuntu防火墙的状态时,将能够以客户端IP地址的“ “Allow””查看“操作”状态。

$ sudo ufw status

UFW Firewall Status

现在,您的主机服务器已准备好通过NFS内核服务器将共享文件夹导出到指定的客户端。

配置客户端计算机

现在是对客户端计算机进行一些简单配置的时候了,以便可以将主机上的共享文件夹安装到客户端,然后进行平滑访问。

步骤1:安装NFS Common

在安装NFS Common应用程序之前,我们需要通过以下apt命令以sudo的形式使用Internet的系统更新系统的存储库索引:

$ sudo apt-get update

Install Ubuntu updates

上面的命令使我们可以通过Ubuntu存储库安装软件的最新可用版本。

现在,运行以下命令以在系统上安装NFS Common客户端:

$ sudo apt-get install nfs-common

Install nfs common package

系统将提示您选择是/否选项,以确认是否要继续安装。请输入Y,然后按Enter键继续,之后软件将成功安装在您的系统上。

步骤2:为NFS主机的共享文件夹创建安装点

您客户的系统需要一个目录,可以访问导出文件夹中主机服务器共享的所有内容。您可以在系统上的任何位置创建此文件夹。我们正在客户计算机的mnt目录中创建一个安装文件夹:

$ sudo mkdir -p /mnt/sharedfolder_client

Create mountpoint for NFS folder

步骤3:在客户端上挂载共享目录

在上一步中创建的文件夹与系统上的其他任何文件夹一样,除非您将共享目录从主机装载到该新创建的文件夹。

为了将共享文件夹从主机安装到客户机上的安装文件夹,请使用以下命令:

$ sudo mount serverIP:/exportFolder_server /mnt/mountfolder_client

在我们的示例中,我们正在运行以下命令将“sharedfolder”从服务器导出到客户端计算机上的安装文件夹“sharedfolder_client”:

$ sudo mount 192.168.100.5:/mnt/sharedfolder /mnt/sharedfolder_client

步骤4:测试连接

请在NFS主机服务器的导出文件夹中创建或保存文件。现在,在客户端计算机上打开mount文件夹;您应该能够查看该文件夹中共享且可访问的相同文件。

结论

在Ubuntu系统上设置NFS client-server环境是一件容易的事。通过本文,您学习了如何在服务器和客户端上安装所需的NFS软件包。您还学习了如何配置NFS服务器和客户端计算机,以便可以共享文件夹,然后在没有任何防火墙或permissions-related故障的情况下平稳地访问文件夹。现在,您可以使用NFS协议轻松地将内容从一个Ubuntu系统共享到另一个系统。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/9946.html,未经允许,请勿转载。