Linux 上的基本 NFS 安装和配置
在计算机和服务器之间共享文件是一项重要的网络任务。值得庆幸的是,Linux 的 NFS(网络文件系统)使这一切变得非常简单。正确配置 NFS 后,在计算机之间移动文件就像在同一台计算机上移动文件一样简单。由于 NFS 功能直接内置于 Linux 内核中,因此它功能强大并且在每个发行版上都可用,尽管它们之间的配置略有不同。
设置服务器
安装软件包
Linux NFS 使用客户端-服务器模型,因此设置 NFS 的第一步是设置服务器。由于核心 NFS 功能植根于内核,因此对软件包的方式没有太多要求,但无论发行版以及一些配置如何,仍然有一些。 几乎所有主要发行版都启用了 NFS,因此除非您运行自定义发行版,否则应该已经设置好它。设置服务器的下一步是安装软件包。 在 Ubuntu/Debian 上:
$ sudo apt-get install nfs-kernel-headers
在 Fedora 上
$ sudo yum install nfs-utils system-config-nfs
配置导出
软件包安装完成后,就可以配置导出文件了。导出文件指定服务器将...导出到网络的目录。该文件的结构相当简单。左侧是应共享的目录,右侧是应与其共享的计算机的 IP 地址和子网以及任何特定选项。它看起来像这样:
/export 192.168.1.0/255.255.255.0(rw,sync,no_subtree_check)
/home/user/shared 192.168.1.122/255.255.255.0(rw,sync,no_subtree_check)
在第一个示例中,目录 /export
被共享给该特定子网上的所有计算机。通过指定地址 192.168.1.0
,“0”充当子网上任何 IP 的通配符。第二个示例类似,但它指定只有该地址可以访问共享目录。 NFS 共享只有几个可用选项。
ro:指定目录只能以只读方式挂载
rw:授予目录读写权限
no_root_squash:是一个极其危险的选项,它允许远程“root”用户与主机的“root”用户具有相同的权限
subtree_check:指定在导出目录而不是整个文件系统的情况下,主机应验证文件和目录在主机文件系统上的位置
no_subtree_check:指定主机不应检查主机文件系统中正在访问的文件的位置
同步:这只是确保主机保持上传到共享目录的任何更改同步
异步:忽略同步检查以提高速度
使用 Systemd 运行
一旦导出文件准备就绪,就可以启动服务器并使其在启动时使用 Systemd 启动。当然,如果您碰巧运行的是非 Systemd 发行版,它也可以与其他 init 系统一起使用。启动 NFS 服务器有两个部分:rpcbind 和 nfs-server。启动它们:
$ sudo systemctl start rpcbind
$ sudo systemctl start nfs-server
在 Debian 和 Ubuntu 上,服务器将自动启动,因此您可能需要运行:
$ sudo systemctl restart rpcbind
$ sudo systemctl restart nfs-server
之后,服务器将启动并运行。再次强调,由于 Debian 和 Ubuntu 默认在启动时运行服务,因此无需任何操作即可使 NFS 在启动时自动运行。要让 NFS 在 Fedora 启动时启动,请运行:
$ sudo systemctl enable rpcbind
$ sudo systemctl enable nfs-server
可以使用主机文件 Portmap 来实现额外的安全性,但这有点超出了本基础知识文章的范围。上述设置提供了一个很好的起点,并且非常适合家庭网络。
连接客户端
设置客户端连接到 NFS 共享所需的工作量要少得多。同样,对于 Debian 发行版和
Debian/Ubuntu:
$ sudo apt-get install nfs-common rpcbind
软呢帽:
$ sudo yum install nfs-utils
完成后开始,或者在 Debian/Ubuntu 重新启动的情况下,rpcbind。
$ sudo systemctl (re)start rpcbind
当然,就像服务器一样,启用 rpcbind 在启动时运行可能是个好主意。对于必须能够在启动时安装删除卷的客户端来说,这更是一个问题。实际上挂载 NFS 卷与挂载本地卷几乎相同。对于一次性安装,语法是相同的。要将服务器上位于 192.158.1.15
的 NFS 目录 /export
挂载到本地目录 /media/nfs-volume
,请键入:
# mount 192.168.1.15:/export /media/nfs-volume
NFS 卷可以在启动时挂载,或者使用 /etc/fstab
指定挂载点。要在启动时自动安装与上述相同的卷,请将以下行添加到 /etc/fstab
中。
192.168.1.15:/export /media/nfs-volume nfs defaults,user,exec 0 0
指定的选项将允许用户访问该目录并允许在该目录上执行。如果您不希望在启动时安装驱动器,但仍可在 /etc/fstab
中使用,请添加 noauto
选项。
只需很少的时间即可设置基本的 NFS 配置,它可以成为在网络上的 Linux 计算机之间共享数据的非常有用的工具。