在 CentOS/RHEL 7 上配置 NFS 客户端
登录到 NFS 客户端
并安装 nfs-utils 包。
[root@nfsclient ~]# yum install -y nfs-utils
创建一个目录,从 nfsserver.onitroad.com 挂载共享目录。
[root@nfsclient ~]# mkdir /mnt/nfsshare
检查来自 nfsserver.onitroad.com 的共享目录。
[root@nfsclient ~]# showmount -e nfsserver.onitroad.com Export list for nfsserver.onitroad.com: /nfsshare nfsclient.onitroad.com [root@nfsclient ~]#
通过在 /etc/fstab 中添加以下条目来永久挂载此共享目录。
[root@nfsclient ~]# echo 'nfsserver.onitroad.com:/nfsshare /mnt/nfsshare nfs defaults,_netdev 0 0' >> /etc/fstab [root@nfsclient ~]# mount -a [root@nfsclient ~]#
检查挂载目录的状态。
[root@nfsclient ~]# mount | grep nfs nfsserver.onitroad.com:/nfsshare on /mnt/nfsshare type nfs4 (rw,relatime,vers=4.0,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.202,local_lock=none,addr=192.168.1.200,_netdev)
在此共享目录中创建一个文件,以验证文件权限。
[root@nfsclient ~]# cd /mnt/nfsshare/ [root@nfsclient nfsshare]# touch test1 [root@nfsclient nfsshare]# ls -al total 0 drwxrwxr-x. 2 root nfsnobody 18 Jul 31 07:32 . drwxr-xr-x. 4 root root 31 Jul 31 07:23 .. -rw-r--r--. 1 nfsnobody nfsnobody 0 Jul 31 07:32 test1 [root@nfsclient nfsshare]#
我们已在 CentOS/RHEL 7 上成功配置 NFS 服务器和客户端,并在该客户端上持久挂载 NFS 共享。
配置环境
NFS 服务器
主机名:nfsserver.onitroad.com
IP:192.168.1.100
操作系统:CentOS
NFS 客户端
主机名:nfsclient.onitroad.com
IP:192.168.1.101
操作系统:CentOS
在本文中,我们将在 CentOS/RHEL 7 中配置 NFS Server 和 Client 以共享目录。
NFS(网络文件系统)是一种分布式文件系统,用于在网络客户端之间共享文件。
NFS 由 Sun Microsystem 于 1984 年开发。
NFS 是 Linux 各种发行版中共享文件的事实上的标准。
它有许多功能可以在特定客户端之间安全地共享文件。
它还支持基于 Kerberos 的身份验证。
在 CentOS/RHEL 7 上配置 NFS 服务器
登录到NFS 服务器。
要配置 NFS 服务器,我们必须安装 nfs-utils 包。
通常,在安装 Red Hat Enterprise Linux (RHEL) 或者 CentOS 7 时会自动安装此软件包。
但是,我们可以随时使用 yum 命令进行安装。
[root@nfsserver ~]# yum install -y nfs-utils
nfs-utils 已经安装在我们的系统上。
创建一个目录以与其他客户端共享。
[root@nfsserver ~]# mkdir /nfsshare [root@nfsserver ~]# chgrp nfsnobody /nfsshare/ [root@nfsserver ~]# chmod g+w /nfsshare/
我们创建了一个目录 /nfsshare,将其组更改为 nfsnobody 并且已将 w 权限授予组。
因此,匿名用户可以在此共享目录上创建文件。
调整 /nfsshare 目录的 SELinux 类型。
[root@nfsserver ~]# semanage fcontext -a -t nfs_t "/nfsshare(/.*)?" [root@nfsserver ~]# restorecon -Rv /nfsshare/ restorecon reset /nfsshare context unconfined_u:object_r:default_t:s0->unconfined_u:object_r:nfs_t:s0
如果 semanage 命令在系统上不可用,则安装 policycoreutils-python 包。
现在通过 NFS 将此目录导出/共享到特定客户端。
[root@nfsserver ~]# echo '/nfsshare nfsclient.onitroad.com(rw,sync)' >> /etc/exports [root@nfsserver ~]# exportfs -r
启用并启动 nfs-server 服务。
[root@nfsserver ~]# systemctl start nfs-server ; systemctl enable nfs-server ln -s '/usr/lib/systemd/system/nfs-server.service' '/etc/systemd/system/nfs.target.wants/nfs-server.service'
允许 nfs 和其他补充服务通过 Linux 防火墙。
[root@nfsserver ~]# firewall-cmd --permanent --add-service={mountd,nfs,rpc-bind} success [root@nfsserver ~]# firewall-cmd --reload success
NFS 服务器已配置。