5.8. 配置一个具有可选的 NFSv4 的 NFSv3 服务器
在仍然使用 NFSv3 客户端的网络中,配置服务器,以使用 NFSv3 协议提供共享。如果在您的网络中还有较新的客户端,您也可以启用 NFSv4。默认情况下,Red Hat Enterprise Linux NFS 客户端使用服务器提供的最新 NFS 版本。
流程
安装
nfs-utils软件包:dnf install nfs-utils
# dnf install nfs-utilsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:默认启用 NFSv3 和 NFSv4。如果您不需要 NFSv4 或只需要特定的次版本,请取消所有
vers4.<minor_version>参数的注释,并相应地设置它们:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用这个配置,服务器仅提供 NFS 版本 3 和 4.2。
重要如果您只需要特定的 NFSv4 次版本,则只为次版本设置参数。不要取消
vers4参数的注释,以避免不可预测的次版本的激活或停用。默认情况下,vers4参数启用或禁用所有 NFSv4 次版本。但是,如果您将vers4与其他vers参数一起设置,则此行为会改变。默认情况下,NFSv3 RPC 服务使用随机端口。要启用防火墙配置,请在
/etc/nfs.conf文件中配置固定端口号:在
[lockd]部分中,为nlockmgrRPC 服务设置固定端口号,例如:[lockd] port=5555
[lockd] port=5555Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用这个设置时,服务会自动对 UDP 和 TCP 协议使用这个端口号。
在
[statd]部分中,为rpc.statd服务设置一个固定端口号,例如:[statd] port=6666
[statd] port=6666Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用这个设置时,服务会自动对 UDP 和 TCP 协议使用这个端口号。
可选:创建一个您要共享的目录,例如:
mkdir -p /nfs/projects/
# mkdir -p /nfs/projects/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果要共享一个现有目录,请跳过这一步。
在
/nfs/projects/目录上设置所需的权限:chmod 2770 /nfs/projects/ chgrp users /nfs/projects/
# chmod 2770 /nfs/projects/ # chgrp users /nfs/projects/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这些命令为
/nfs/projects/目录上的users组设置写权限,并确保自动在此目录中创建的新条目上设置同样的组。为每个您要共享的每个目录向
/etc/exports文件中添加一个导出点:/nfs/projects/ 192.0.2.0/24(rw) 2001:db8::/32(rw)
/nfs/projects/ 192.0.2.0/24(rw) 2001:db8::/32(rw)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此条目将
/nfs/projects/目录共享为可被192.0.2.0/24和2001:db8::/32子网中的客户端读写。在
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# firewall-cmd --permanent --add-service={nfs,rpc-bind,mountd} # firewall-cmd --permanent --add-port={5555/tcp,5555/udp,6666/tcp,6666/udp} # firewall-cmd --reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow 启用并启动 NFS 服务器:
systemctl enable --now rpc-statd nfs-server
# systemctl enable --now rpc-statd nfs-serverCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
在服务器上,验证服务器是否只提供您配置的 NFS 版本:
cat /proc/fs/nfsd/versions +3 +4 -4.0 -4.1 +4.2
# cat /proc/fs/nfsd/versions +3 +4 -4.0 -4.1 +4.2Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在客户端上执行以下步骤:
安装
nfs-utils软件包:dnf install nfs-utils
# dnf install nfs-utilsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 挂载导出的 NFS 共享:
mount -o vers=<version> server.example.com:/nfs/projects/ /mnt/
# mount -o vers=<version> server.example.com:/nfs/projects/ /mnt/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证是否使用指定的 NFS 版本挂载了共享:
mount | grep "/mnt"
# mount | grep "/mnt" server.example.com:/nfs/projects/ on /mnt type nfs (rw,relatime,vers=3,...Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以
users组成员的用户身份,在/mnt/中创建一个文件:touch /mnt/file
# touch /mnt/fileCopy to Clipboard Copied! Toggle word wrap Toggle overflow 列出目录以验证文件是否已创建:
ls -l /mnt/
# ls -l /mnt/ total 0 -rw-r--r--. 1 demo users 0 Jan 16 14:18 fileCopy to Clipboard Copied! Toggle word wrap Toggle overflow