在本教程中,我们将向您展示如何在 Ubuntu 20.04 LTS 上安装 NFS 服务器。 对于那些不知道的人,NFS 或网络文件系统是一种分布式文件系统协议。 它可以帮助您通过网络与他人共享文件和整个目录。 它允许远程系统上的程序相互共享和访问信息,就像在本地机器上可用一样。 该技术使您可以灵活地在多个系统上共享资源。
本文假设您至少具备 Linux 的基本知识,知道如何使用 shell,最重要的是,您将站点托管在自己的 VPS 上。 安装非常简单,假设您在 root 帐户中运行,否则您可能需要添加 ‘sudo
‘ 到获得 root 权限的命令。 我将向您展示如何在 Ubuntu 20.04 (Focal Fossa) 上逐步安装 NFS 服务器。 您可以按照针对 Ubuntu 18.04、16.04 和任何其他基于 Debian 的发行版(如 Linux Mint)的相同说明进行操作。
我们使用两台机器,一台运行 Ubuntu 20.04,它将充当 NFS 服务器,另一台运行我们将安装共享的任何其他 Linux 发行版。 本示例中的机器具有以下 IP:
NFS Server IP: 192.168.77.20 NFS Clients IPs: From the 192.168.77.0/24 range
在 Ubuntu 20.04 LTS Focal Fossa 上安装 NFS 服务器
步骤 1. 首先,通过运行以下命令确保所有系统包都是最新的 apt
终端中的命令。
sudo apt update sudo apt upgrade
步骤 2. 在 Ubuntu 20.04 上安装 NFS 服务器。
现在我们运行以下命令来安装 NFS 内核服务器包:
sudo apt install nfs-kernel-server
您可以验证是否 nfs-server
服务正在运行,如图所示:
sudo systemctl status nfs-server
步骤 3. 在主机上创建共享目录。
创建将在客户端系统之间共享的目录:
sudo mkdir /var/nfs/general -p
由于我们希望客户端系统拥有对这个共享目录的完全访问权限,我们需要删除所有限制访问的目录权限:
sudo chown nobody:nogroup /var/nfs/general
步骤 4. 在主机上配置 NFS。
我们将深入研究 NFS 配置文件以设置这些资源的共享:
sudo nano /etc/s
添加以下几行:
/var/nfs/general client_ip(rw,sync,no_subtree_check) /home client_ip(rw,sync,no_root_squash,no_subtree_check)
对于出口的基本选项:
选项 | 描述 |
权重 | 允许对 NFS 卷的读取和写入请求。 |
罗 | 仅允许对 NFS 卷的读取请求。 |
同步 | 只有在将更改提交到稳定存储后才回复请求。 (默认) |
异步 | 此选项允许 NFS 服务器违反 NFS 协议并在该请求所做的任何更改提交到稳定存储之前回复请求。 |
安全的 | 此选项要求请求源自小于 IPPORT_RESERVED (1024) 的 Internet 端口。 (默认) |
没有安全感 | 此选项接受所有端口。 |
延迟 | 如果怀疑另一个相关的写入请求可能正在进行或可能很快到达,则稍微延迟向光盘提交写入请求。 (默认) |
无延迟 | 如果还设置了 async,则此选项无效。 如果 NFS 服务器怀疑另一个相关的写入请求可能正在进行或即将到达,它通常会稍微延迟向磁盘提交写入请求。 这允许将多个写入请求提交到磁盘,并通过一个操作来提高性能。 如果 NFS 服务器主要接收小的无关请求,这种行为实际上会降低性能,因此 no_wdelay 可用于将其关闭。 |
subtree_check | 此选项启用子树检查。 (默认) |
no_subtree_check | 此选项禁用子树检查,这具有轻微的安全隐患,但在某些情况下可以提高可靠性。 |
root_squash | 将请求从 uid/gid 0 映射到匿名 uid/gid。 请注意,这不适用于可能同样敏感的任何其他 uid 或 gid,例如用户 bin 或组员工。 |
no_root_squash | 关闭根压扁。 此选项主要用于无盘客户端。 |
all_squash | 将所有 uid 和 gid 映射到匿名用户。 对 NFS 导出的公共 FTP 目录、新闻假脱机目录等很有用。 |
no_all_squash | 关闭所有挤压。 (默认) |
anonuid = UID | 这些选项明确设置匿名帐户的 uid 和 gid。 此选项主要用于 PC/NFS 客户端,您可能希望所有请求都来自一个用户。 例如,考虑下面示例部分中 /home/joe 的导出条目,它将所有请求映射到 uid 150。 |
anongid = GID | 阅读以上(anonuid=UID) |
最后,重新启动 NFS 服务器以应用更改:
sudo systemctl restart nfs-kernel-server
步骤 5. 配置防火墙。
您需要允许通过防火墙访问,否则将无法访问和挂载共享目录。 要实现这一点,请运行以下命令:
sudo ufw allow from 192.168.77.0/24 to any port nfs sudo ufw enable sudo ufw status
步骤 6. 设置 NFS 客户端。
在客户端机器上,我们只需要安装挂载远程 NFS 文件系统所需的工具。
- 在 Debian 和 Ubuntu 上安装 NFS 客户端
运行以下命令进行安装:
sudo apt install nfs-common
- 在客户端上创建挂载点。
现在我们为客户端上的挂载创建两个目录:
sudo mkdir -p /nfs/general sudo mkdir -p /nfs/home
接下来,使用主机的 IP 地址挂载共享:
sudo mount host_ip:/var/nfs/general /nfs/general sudo mount host_ip:/home /nfs/home
使用 mount 或 df
命令:
df -h
要在重新启动时永久安装,请打开 /etc/fstab
文件并添加以下几行:
sudo nano /etc/fstab
添加以下行:
192.168.77.10:/var/nfs/general /nfs/general nfs defaults,timeo=900,retrans=5,_netdev 0 0 192.168.77.10:/home /nfs/home nfs defaults,timeo=900,retrans=5,_netdev 0 0
步骤 7. 测试 NFS 共享。
现在我们创建一个测试文件到 /var/nfs/general
分享:
sudo touch /nfs/general/general.test
检查其所有权:
$ ls -l /nfs/home/home.test -rw-r--r-- 1 root root 0 Aug 1 13:32 /nfs/home/home.test
步骤 8. 卸载 NFS 文件系统。
如果不再需要远程 NFS 共享,您可以使用 umount
命令:
sudo umount /general
恭喜! 您已成功安装 NFS 服务器。 感谢您使用本教程在 Ubuntu 20.04 LTS Focal Fossa 系统上安装 NFS 服务器。 如需更多帮助或有用信息,我们建议您查看 NFS 官方网站.