搜索

2.8. 使用可选 NFSv4 配置 NFSv3 服务器

download PDF

在仍然使用 NFSv3 客户端的网络中,将服务器配置为使用 NFSv3 协议提供共享。如果您的网络中也具有较新的客户端,也可以启用 NFSv4。默认情况下,Red Hat Enterprise Linux NFS 客户端使用服务器提供的最新 NFS 版本。

流程

  1. 安装 nfs-utils 软件包:

    # dnf install nfs-utils
  2. 可选:默认启用 NFSv3 和 NFSv4。如果您不需要 NFSv4 或只使用特定的次版本,请取消所有 vers4.<minor_version> 参数的注释,并相应地设置它们:

    [nfsd]
    # vers3=y
    # vers4=y
    vers4.0=n
    vers4.1=n
    vers4.2=y

    使用这个配置,服务器仅提供 NFS 版本 3 和 4.2。

    重要

    如果您只需要特定的 NFSv4 次版本,则只为次版本设置参数。不要取消注释 vers4 参数,以避免无法预测的次版本激活或停用次版本。默认情况下,vers4 参数启用或禁用所有 NFSv4 次要版本。但是,如果您将 vers4 与其他 vers 参数一起设置,则此行为会改变。

  3. 默认情况下,NFSv3 RPC 服务使用随机端口。要启用防火墙配置,请在 /etc/nfs.conf 文件中配置固定端口号:

    1. [lockd] 部分中,为 nlockmgr RPC 服务设置固定端口号,例如:

      [lockd]
      port=5555

      使用这个设置时,服务会自动将这个端口号用于 UDP 和 TCP 协议。

    2. [statd] 部分中,为 rpc.statd 服务设置固定端口号,例如:

      [statd]
      port=6666

      使用这个设置时,服务会自动将这个端口号用于 UDP 和 TCP 协议。

  4. 可选:创建一个您要共享的目录,例如:

    # mkdir -p /nfs/projects/

    如果要共享现有目录,请跳过这一步。

  5. /nfs/projects/ 目录中设置所需的权限:

    # chmod 2770 /nfs/projects/
    # chgrp users /nfs/projects/

    这些命令为 /nfs/projects/ 目录中的 用户组 设置写入权限,并确保在此目录中创建的新条目上自动设置同一组。

  6. 为每个您要共享的目录添加导出点到 /etc/exports 文件:

    /nfs/projects/     192.0.2.0/24(rw) 2001:db8::/32(rw)

    此条目共享 /nfs/projects/ 目录,并可访问对 192.0.2.0/242001:db8::/32 子网中客户端的读写访问权限。

  7. firewalld 中打开相关端口:

    # firewall-cmd --permanent --add-service={nfs,rpc-bind,mountd}
    # firewall-cmd --permanent --add-port={5555/tcp,5555/udp,6666/tcp,6666/udp}
    # firewall-cmd --reload
  8. 启用并启动 NFS 服务器:

    # systemctl enable --now rpc-statd nfs-server

验证

  • 在服务器上,验证服务器是否只提供您配置的 NFS 版本:

    # cat /proc/fs/nfsd/versions
    +3 +4 -4.0 -4.1 +4.2
  • 在客户端中执行以下步骤:

    1. 安装 nfs-utils 软件包:

      # dnf install nfs-utils
    2. 挂载导出的 NFS 共享:

      # mount -o vers=<version> server.example.com:/nfs/projects/ /mnt/
    3. 验证共享是否已使用指定的 NFS 版本挂载:

      # mount | grep "/mnt"
      server.example.com:/nfs/projects/ on /mnt type nfs (rw,relatime,vers=3,...
    4. 作为作为 users 组的成员的用户,在 /mnt/ 中创建文件:

      # touch /mnt/file
    5. 列出目录以验证该文件是否已创建:

      # ls -l /mnt/
      total 0
      -rw-r--r--. 1 demo users 0 Jan 16 14:18 file
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.