NFS
100%

网络共享 · 第 4 课

NFS

学习如何发现、挂载、验证并安全自动化 NFS 客户端挂载。

网络文件系统让客户端通过本地文件系统命名空间访问服务器导出。服务器控制导出和大部分访问策略;客户端控制在何处以及何时挂载获得授权的导出。

准备客户端

安装发行版的 NFS 客户端工具,在 Debian 系统上通常打包为 nfs-common,在 Red Hat 系统上通常为 nfs-utils。与服务器管理员确认 DNS 或地址可达性、允许的 NFS 版本、防火墙策略和确切导出路径。

showmount -e SERVER 可以列出通过旧式挂载协议提供的导出,但对只使用 NFSv4 的服务器并非始终权威。列出失败不能证明不存在已授权的 NFSv4 导出。

为什么 showmount -e 对 NFSv4 服务器可能不完整?

挂载导出

创建空的专用挂载点,并挂载获准的导出:

$ sudo mkdir -p /mnt/team
$ sudo mount -t nfs server.example.net:/srv/team /mnt/team

只有策略或兼容性要求时才指定版本,例如 -o vers=4.2。不要猜测性能或安全选项。确认最终来源、类型和选项:

$ findmnt --target /mnt/team

挂载命令中的 server.example.net:/srv/team 是什么?

理解身份与权限

NFS 访问结合了服务器导出规则、协议安全、数字身份或目录服务,以及文件系统权限。两台主机显示相同用户名,并不保证数字 ID 相同。传统 AUTH_SYS 发送客户端提供的数字身份,高度依赖可信客户端和网络控制;安全要求较高的环境可以在端到端配置后使用 Kerberos 安全模式。

服务器通常通过 root squash 将远程 root 映射为非特权身份。不要仅仅为解决权限错误就禁用该保护;应检查 ID、目录所有权、导出策略和预期安全模型。

为什么显示名称相同的两个用户可能获得不同的 NFS 权限?

自动化网络挂载

当网络或服务器不可用时,普通的启动时 /etc/fstab 挂载可能延迟启动。根据主机情况,可使用 autofs 进行按需映射,或在测试确切语义后使用 _netdev,nofail,x-systemd.automount 等 systemd 挂载选项:

server.example.net:/srv/team /mnt/team nfs4 rw,_netdev,nofail,x-systemd.automount 0 0

编辑 fstab 前,应保留恢复访问,并使用非破坏性解析器或受控挂载测试进行验证。自动挂载可以改善可用性行为,但不能修复授权、DNS 或服务器中断。

按需自动挂载 NFS 共享的主要好处是什么?

卸载与验证

卸载前,应停止或协调使用共享的进程,并刷新应用程序工作。然后卸载挂载点,并确认它已消失:

$ sudo umount /mnt/team
$ findmnt --target /mnt/team

强制或懒卸载可能隐藏活动引用并造成应用程序错误;只应在已诊断故障且有明确恢复计划时使用这些选项。

正常卸载 NFS 前应该做什么?

课程已完成

你已完成 NFS

现在,你可以在明确身份和可用性假设的情况下操作 NFS 客户端挂载。

  • 确认客户端工具、导出路径、协议和网络策略。

  • 挂载到专用路径,并验证实际来源和选项。

  • 通过身份和导出策略诊断权限。

  • 启动可用性重要时使用经过测试的按需挂载。

  • 协调用户、正常卸载并验证移除。

保存学习进度

创建免费账户即可保存本课进度,并在任意设备上继续学习。

创建免费账户
下一节
返回 网络共享