3.2. 将 NFSv3 客户端配置为在防火墙后面运行

将 NFSv3 客户端配置为在防火墙后面运行的流程类似于将 NFSv3 服务器配置为在防火墙后面运行的流程。

如果您要配置的机器既是 NFS 客户端和 NFS 服务器,请按照 配置具有可选 NFSv4 支持的 NFSv3 服务器 中所述的步骤操作。

以下流程描述了如何配置 NFS 客户端机器只在防火墙后面运行。

流程

  1. 要在客户端位于防火墙后面时允许 NFS 客户端对 NFS 客户端执行回调,请通过在 NFS 客户端上运行以下命令来将 rpc-bind 服务添加到防火墙中:

    firewall-cmd --permanent --add-service rpc-bind
  2. /etc/nfs.conf 文件中指定 RPC 服务 nlockmgr 使用的端口,如下所示:

    [lockd]
    
    port=port-number
    udp-port=upd-port-number

    或者,您可以在 /etc/modprobe.d/lockd.conf 文件中指定 nlm_tcpportnlm_udpport

  3. 通过在 NFS 客户端上运行以下命令来打开防火墙中指定的端口:

    firewall-cmd --permanent --add-port=<lockd-tcp-port>/tcp
    firewall-cmd --permanent --add-port=<lockd-udp-port>/udp
  4. 通过编辑 /etc/nfs.conf 文件的 [statd] 部分为 rpc.statd 添加静态端口,如下所示:

    [statd]
    
    port=port-number
  5. 通过在 NFS 客户端上运行以下命令,来在防火墙中打开添加的端口:

    firewall-cmd --permanent --add-port=<statd-tcp-port>/tcp
    firewall-cmd --permanent --add-port=<statd-udp-port>/udp
  6. 重新载入防火墙配置:

    firewall-cmd --reload
  7. 重启 rpc-statd 服务:

    # systemctl restart rpc-statd.service

    或者,如果您在 /etc/modprobe.d/lockd.conf 文件中指定了 lockd 端口:

    1. 更新 /proc/sys/fs/nfs/nlm_tcpport/proc/sys/fs/nfs/nlm_udpport 的当前值:

      # sysctl -w fs.nfs.nlm_tcpport=<tcp-port>
      # sysctl -w fs.nfs.nlm_udpport=<udp-port>
    2. 重启 rpc-statd 服务:

      # systemctl restart rpc-statd.service