NFS(网络文件共享)是一种协议,允许用户与网络中的其他Linux客户端共享目录和文件。通常在NFS服务器上创建要共享的目录并向其中添加文件。
客户端系统挂载驻留在NFS服务器上的目录,这授予它们对创建的文件的访问权限。当你需要在客户端系统之间共享公共数据时,特别是当它们空间不足时,NFS会派上用场。
在本文中,小编主要介绍在Ubuntu 22.04、20.04和18.04上安装和配置NFS服务器以及在Linux系统上安装NFS客户端的详细过程步骤。
在Ubuntu上安装和配置NFS服务器
要安装和配置NFS服务器,请按照下列步骤操作。
1、在Ubuntu中安装NFS内核服务器
第一步是在服务器上安装nfs-kernel-server软件包。但在执行此操作之前,首先使用以下apt命令更新系统软件包:
$ sudo apt update
$ sudo apt install nfs-kernel-server
2、创建NFS导出目录
第二步将创建一个在客户端系统之间共享的目录。这也称为导出目录,稍后将在该目录中创建客户端系统可以访问的文件。通过指定NFS挂载目录名称来运行以下命令:
$ sudo mkdir -p /mnt/nfs_share
由于希望所有客户端计算机都可以访问共享目录,因此请删除目录权限中的任何限制:
$ sudo chown -R nobody:nogroup /mnt/nfs_share/
此外,你还可以根据自己的喜好调整文件权限。这里已经赋予了目录内所有内容的读、写和执行权限,具体如下:
$ sudo chmod 777 /mnt/nfs_share/
3、授予对客户端系统的 NFS 共享访问权限
访问NFS服务器的权限在/etc/exports文件中定义。因此,使用你喜欢的文本编辑器打开该文件:
$ sudo vim /etc/exports
你可以提供对单个客户端、多个客户端或指定整个子网的访问。在本指南中,小编允许整个子网访问NFS共享:
/mnt/nfs_share 192.168.43.0/24(rw,sync,no_subtree_check)
有关上述命令中使用的选项的说明:
- rw:代表读/写。
- sync:要求在应用更改之前将更改写入磁盘。
- No_subtree_check:消除子树检查。
另外,要向单个客户端授予访问权限,请使用以下语法:
/mnt/nfs_share client_IP_1 (re,sync,no_subtree_check)
对于多个客户端,请在单独的文件中指定每个客户端:
/mnt/nfs_share client_IP_1 (re,sync,no_subtree_check) /mnt/nfs_share client_IP_2 (re,sync,no_subtree_check)
4、导出NFS共享目录
授予对首选客户端系统的访问权限后,导出NFS共享目录并重新启动NFS内核服务器以使更改生效,命令如下:
$ sudo exportfs -a $ sudo systemctl restart nfs-kernel-server
5、允许NFS通过防火墙访问
客户端访问NFS共享需要允许通过防火墙访问,否则将无法访问和挂载共享目录。要实现此目的运行命令:
$ sudo ufw allow from 192.168.43.0/24 to any port nfs
重新加载或启用防火墙(如果已关闭)并检查防火墙的状态,应打开默认文件共享端口2049:
$ sudo ufw enable $ sudo ufw status
在客户端系统上安装NFS客户端
上面已经完成了服务器上NFS服务的安装和配置,现在让我们在客户端系统上安装 NFS。
1、安装NFS-Common软件包
按照惯例,首先要更新系统软件包和存储库,命令如下:
$ sudo apt update
接下来,安装nfs-common软件包,如下所示:
$ sudo apt install nfs-common
2、在客户端创建NFS挂载点
接下来,需要创建一个挂载点,将从NFS服务器挂载nfs共享。为此,请运行以下命令:
$ sudo mkdir -p /mnt/nfs_clientshare
3、在客户端系统上挂载NFS共享
剩下的最后一步是安装NFS服务器共享的NFS共享,这将使客户端系统能够访问共享目录。现在使用ifconfig命令检查NFS服务器的IP地址。
$ ifconfig
要实现此目的,请运行以下命令:
$ sudo mount 192.168.43.234:/mnt/nfs_share /mnt/nfs_clientshare
4、测试客户端系统上的NFS共享
为了验证NFS设置是否正常工作,将在服务器的NFS共享目录中创建一些文件,具体包括:
$ cd /mnt/nfs_share/ $ touch file1.txt file2.txt file3.txt
现在返回NFS客户端系统并检查文件是否存在:
$ ls -l /mnt/nfs_clientshare/
大功告成,从输出可以确认能够访问刚刚在NFS服务器上创建的文件!
总结
通过以上过程,就已经成功完成了Ubuntu 22.04、Ubuntu 20.04和Ubuntu 18.04系统上NFS服务器的安装和配置。需要注意的是,NFS如今很少使用,并已被更强大、更安全的Samba共享协议所取代。不过,如果你仍然想要安装使用NFS服务的话,那么可以按照上述步骤进行操作。