如何在 Linux 上配置 NFS
在计算机和服务器之间共享文件是一项重要的网络任务。值得庆幸的是,NFS(网络文件系统)可用于 Linux 系统,使这项工作变得非常简单。正确配置 NFS 后,在计算机之间移动文件就像在同一台计算机上移动文件一样简单。由于 NFS 功能直接内置于 Linux 内核中,因此它功能强大并且在每个 Linux 发行版上都可用,尽管它们之间的配置可能略有不同。
在本指南中,我们将展示如何在主要 Linux 发行版上安装和配置 NFS,例如 Ubuntu 和其他基于 Debian 的发行版,以及 Fedora 和其他基于 Red Hat 的发行版。配置将涉及一台服务器(托管文件)和一台客户端计算机(连接到服务器以查看或上传文件)。请按照以下步骤在您自己的系统上进行 NFS 设置。
在本教程中您将学习:
如何安装NFS服务器
如何配置 NFS 服务器共享
如何从客户端计算机连接到 NFS 服务器
在 Linux 上配置 NFS 服务器共享
设置 NFS 服务器
本指南的这一部分将介绍 NFS 服务器的配置 - 换句话说,将托管 NFS 共享的计算机。然后,客户端计算机可以连接到服务器以访问和/或上传文件。
我们需要做的第一件事是安装 NFS 服务器包,该包可以从主存储库中获取。使用下面相应的命令在您的系统上安装该软件。
在 Ubuntu、Linux Mint 和其他基于 Debian 的发行版上:
$ sudo apt install nfs-kernel-server
在 Fedora、CentOS、AlmaLinux 和其他基于 RHEL 的发行版上:
$ sudo dnf install nfs-utils
接下来,确保 NFS 服务正在运行,并将在后续计算机启动时自动启动。
$ sudo systemctl enable --now nfs-server
如果您尚未创建要共享的目录,那么现在就需要创建一个目录。在此示例中,我们将 NFS 共享存储为
/media/nfs
。$ sudo mkdir -p /media/nfs
接下来,我们将编辑
/etc/exports
配置文件。在这里,您可以配置要共享的目录以及谁可以访问它们。您还可以为共享设置特定权限以进一步限制访问。使用 nano 或您喜欢的文本编辑器打开文件。$ sudo nano /etc/exports
在文件中,每个共享都有自己的行。该行以服务器计算机上的共享位置开始。除此之外,您还可以列出接受的客户端的主机名(如果服务器的主机文件中可用)或 IP 或 IP 范围。将共享规则直接放在 IP 地址后面的一组括号中。总而言之,它应该看起来像这样:
/media/nfs 192.168.1.0/24(rw,sync,no_subtree_check)
您可以包含任意数量的共享,只要每个共享都有自己的行。您还可以在每一行中包含多个主机名或 IP,并为它们分配不同的权限。例如:
/media/nfs 192.168.1.112(rw,sync,no_subtree_check) 192.168.1.121(ro,sync,no_subtree_check)
在第二个实例中,每台计算机都可以查看共享并从中读取内容,但只有
192.168.1.112
的计算机可以对其进行写入。您可以选择更多选项来配置服务器如何处理您为每位访客共享的内容。以下是可用内容的完整细分,但上述配置足以满足大多数通用场景。
ro
– 指定目录只能以只读方式挂载rw
– 授予目录的读写权限no_root_squash
– 是一个极其危险的选项,它允许远程 root 用户与主机的 root 用户具有相同的权限subtree_check
– 指定在导出目录而不是整个文件系统的情况下,主机应验证主机文件系统上文件和目录的位置no_subtree_check
– 指定主机不应检查主机文件系统中正在访问的文件的位置sync
– 这只是确保主机保持上传到共享目录的任何更改同步async
– 忽略同步检查以提高速度按照您想要的方式设置完所有内容后,保存并退出文件。然后,执行
exportfs
命令加载新的导出配置。$ sudo exportfs -arv exporting 192.168.1.0/24:/media/nfs
使用我们的 NFS 共享和选项编辑 /etc/exports 文件
现在可以从您在 /etc/exports
文件中配置的客户端计算机访问您的共享。有关连接到 NFS 共享的说明,请参阅下一节。
从客户端计算机连接到 NFS 服务器
本节指南将展示如何使用客户端计算机连接到我们在上一节中配置的 NFS 共享。
我们需要做的第一件事是在我们的系统上安装适当的 NFS 软件包。使用下面适当的命令通过系统的包管理器安装它。
在 Ubuntu、Linux Mint 和其他基于 Debian 的发行版上:
$ sudo apt install nfs-common
在 Fedora、CentOS、AlmaLinux 和其他基于 RHEL 的发行版上:
$ sudo dnf install nfs-utils
安装该软件包后,您将能够挂载 NFS 共享。因此,要尝试一下,请选择一个要挂载的目录,然后以 root 权限运行
mount
命令来挂载网络共享。我们在此命令中指定 NFS 服务器的 IP,恰好是 192.168.1.110。$ sudo mount -t nfs4 192.168.1.110:/media/nfs /media/share
如果安装成功,您将能够在安装目录中访问共享文件。要获得更永久的解决方案,您可以将共享添加到客户端的
/etc/fstab
文件中。整体语法看起来很像您刚刚用来挂载共享的命令。从网络上共享的位置开始。接下来是要安装共享的位置。这里的文件系统类型是nfs4。这些选项由您决定,但对于非敏感共享,使用默认值并允许用户访问是很常见的。最终结果应该类似于下面的示例。192.168.1.110:/media/nfs /media/share nfs4 defaults,user,exec 0 0
如果您不确定共享是否始终在客户端上可用,请将
noauto
添加到选项列表中,以防止您的系统尝试自动挂载它。192.168.1.110:/media/nfs /media/share nfs4 defaults,user,exec,noauto 0 0
要执行您刚刚编辑的
fstab
,请运行以下mount
命令。$ sudo mount -a
您的共享应该准确安装在您指定的位置。
在我们的客户端系统上挂载 NFS 共享,然后检查在服务器上创建的测试文件
将 NFS 共享编辑到 /etc/fstab 文件,以便自动挂载
结束语
您的 NFS 服务器现在已准备好开始提供文件服务,并且您在设置其余客户端计算机时应该不会遇到任何问题。请记住,NFS 的安全性并不高,因此,如果您选择共享更敏感的内容,则需要其他方法来限制对文件的访问。