在Linux系统中,有一些文件共享协议用于跨网络共享存储和文件,其中使用最广泛的是Samba和NFS。
Samba是一种流行的开源应用程序套件,在客户端-服务器架构中工作。它提供跨平台兼容性,支持跨Linux、Windows和macOS操作系统的无缝文件共享。它可以从不同的平台访问托管在Linux系统上的共享文件,从而促进协作。
另一种广泛使用的文件共享协议是NFS ,即网络文件共享的缩写。就像Samba一样,NFS工作在客户端-服务器模型上,允许用户通过网络与多个远程客户端用户共享目录和文件。
在本文中,小编主要介绍在基于RHEL的发行版(例如Fedora、CentOS Stream、Rocky Linux和AlmaLinux)上安装NFS服务器和客户端的详细步骤。
NFS服务
目前,NFS有3个版本,最新的版本是NFSv4,其中包括通过互联网和跨防火墙工作的功能等功能。此外,还有NFSv3和NFSv2,这是较老的协议。NFS服务由NFS服务器和客户端组成。NFS服务器包含以下关键文件:
- nfs-server – 允许客户端系统访问NFS共享文件。
- rpcbind – 将RPC程序转换为通用地址。
- nfs-idmap – 将用户和组 ID转换为名称,以及将用户和组名称转换为ID。
- portmap – 这是一个将RPC程序号转换为IP端口号的服务器。
- nfslock – 如果NFS服务器崩溃,nfslock会启动所需的RPC进程。
NFS配置服务
以下是NFS的一些关键配置文件:
- /etc/exports – 主配置文件,规定远程用户要导出和访问的文件系统或目录。
- /etc/fstab – 这是一个包含已安装分区条目的文件。在NFS中,该文件包含永久安装并可以持续重新启动的NFS共享目录或文件系统的条目。
- /etc/sysconfig/nfs – 定义了RPC服务运行过程中所需的端口。
NFS服务器和客户端设置
要设置NFS共享,需要至少两台Linux/Unix机器。在本文中,小编将使用两台服务器。
- NFS服务器– IP 10.128.15.213的RHEL 9
- NFS客户端– IP 10.128.15.214的RHEL 9
在服务器和客户端上安装NFS
首先,需要登录两个节点(NFS服务器和客户端)并安装NFS服务。更新包信息,如下所示。以下dnf命令还将所有令人期待的一些软件包升级到最新版本。
$ sudo dnf update
更新完成后,继续安装必需的NFS服务,命令如下:
$ sudo dnf install rpcbind nfs-utils -y
下一步是启用NFS服务,具体命令如下:
$ sudo systemctl enable nfs-server $ sudo systemctl enable rpcbind
请务必同时启动NFS服务,输入以下命令:
$ sudo systemctl enable nfs-server $ sudo systemctl enable rpcbind
验证所有NFS服务是否正在运行也是比较重要的:
$ sudo systemctl status nfs-server $ sudo systemctl status rpcbind
请确保还配置防火墙以允许入站NFS服务,命令如下:
$ sudo firewall-cmd --permanent --add-service={nfs,rpc-bind,mountd} $ sudo firewall-cmd --reload
创建NFS共享目录
$ mkdir -p /home/tecmint/my_nfsshare
接下来,分配目录权限。出于演示目的,将分配全局权限,以赋予NFS客户端读取、写入和执行权限:
$ sudo chmod 777 -R /home/tecmint/my_nfsshare
导出NFS共享目录
下一步是导出NFS共享目录。为了实现这一点,需要在/etc/exports文件中创建一个条目。因此,请使用文本编辑器访问该文件,这里小编使用的是Vim编辑器:
$ sudo vim /etc/exports
添加以下条目。注意,请务必将server-ip替换为NFS服务器的IP地址。
/home/tecmint/my_nfsshare server-ip/24(rw,no_root_squash)
最后导出NFS共享目录或文件系统,命令如下:
$ sudo exportfs -rv
执行以下命令查看NFS共享:
$ showmount -e localhost
配置NFS客户端
接下来的阶段是配置NFS客户端以访问共享目录。首先,确认可以查看NFS服务器上的导出列表或NFS共享:
# showmount -e 10.128.15.213
下一步是将NFS共享从服务器挂载到客户端。为此,首先需要创建一个挂载目录。在本例中,将创建一个名为nfs_backup的目录:
# mkdir nfs_backup
此后,将NFS共享挂载到我们刚刚在根主目录中创建的挂载目录:
# mount -t nfs 10.128.15.213:/home/tecmint/my_nfsshare ~/nfs_backup
要保留NFS共享,请编辑/etc/fstab配置文件:
# vim /etc/fstab
然后添加以下条目。
10.128.15.213:/home/tecmint/my_nfsshare /root/nfs_backup nfs defaults 0 0
保存并退出配置文件。
测试NFS设置
最后一步是验证NFS设置是否按预期工作,这里将在服务器上创建一些文件并在NFS客户端验证它们的可用性。在服务器端,将在NFS共享目录中创建文件。
$ sudo touch my_nfsshare/file{1..4}.txt
要验证文件是否已创建,执行ls命令:
$ ls -l my_nfsshare/
返回客户端,验证挂载目录中的文件是否可用,无需任何服务刷新或重新启动任何服务,如以下输出所示:
$ ls -l nfs_backup/
删除NFS挂载
如果不再需要系统上的挂载目录,可以使用以下umount命令从客户端卸载它们:
$ umount ~/nfs_backup
NFS共享命令
以下升NFS的一些更重要的命令:
- showmount -e:显示本地计算机上的可用共享。
- showmount -e ip-address:列出远程服务器上的可用共享。
- showmount -d:列出所有子目录。
- exportfs -v:显示服务器上的共享文件和选项的列表。
- exportfs -a:导出/etc/exports或给定名称中列出的所有共享。
- exportfs -u:取消导出/etc/exports或给定名称中列出的所有共享。
- exportfs -r:修改/etc/exports后刷新服务器列表。
总结
以上就是关于在基于RedHat的发行版上安装NFS服务器和客户端的图文步骤。通过以上过程设置,已经在服务器上安装了NFS服务,并且创建了NFS共享目录,同时在客户端挂载了共享目录。当然,通过上述教程也能够从客户端访问服务器上创建的文件来验证NFS设置。