Linux ❀ RHCE自研教学笔记 - Redhat 8.2 NFS服务教研笔记

Posted 国家级干饭型选手°

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux ❀ RHCE自研教学笔记 - Redhat 8.2 NFS服务教研笔记相关的知识,希望对你有一定的参考价值。


NFS - Network File System 网络文件系统:允许远程客户端以与本地文件系统类似的方式,来通过网络进行访问;

NFS的工作原理是使用客户端/服务器架构,由一个客户端程序和服务器程序组成;服务器程序向其他计算机提供对文件系统的访问,其过程称为输出;NFS客户端程序对共享文件系统进行访问时,把它们从NFS服务器中“输送”出来;文件通常以块为单位进行传输,其大小是8KB(虽然它可能会将操作分成更小尺寸的分片);NFS传输协议用于服务器和客户机之间文件访问和共享的通信,从而使客户机远程地访问保存在存储设备上的数据;基于UDP协议运行;

1、安装服务


[root@localhost ~]# dnf install -y rpcbind
Complete!
[root@localhost ~]# dnf install -y nfs-utils
Complete!

rpcbind是rpc的一个服务,主要是负责通知客户端NFS服务器相关端口号的,为中介服务;

[root@localhost ~]# rpm -qa rpcbind
rpcbind-1.2.5-7.el8.x86_64
[root@localhost ~]# rpm -qa nfs-utils
nfs-utils-2.3.3-31.el8.x86_64

[root@localhost ~]# rpm -qc nfs-utils
/etc/gssproxy/24-nfs-server.conf
/etc/modprobe.d/lockd.conf
/etc/nfs.conf
/etc/nfsmount.conf
/etc/request-key.d/id_resolver.conf
/var/lib/nfs/etab				/记录共享目录的权限;
/var/lib/nfs/rmtab		
/etc/exports					/主配置文件(不存在,需要自己创建);

2、服务配置


(1)配置只读NFS服务

[root@localhost ~]# vim /etc/exports
/nfs/share 192.168.14.0/24(ro)
#共享目录    登录IP范围     (共享权限)

* 参数说明

  • rw:对共享目录具有读写权限(最终读写取决于文件权限是否具有rwx);
  • ro:对共享目录具有只读权限;
  • sync:数据会同步写入到内存与磁盘中;
  • async:数据会暂时存储在内存中,而非直接写入磁盘;
  • root_squash:客户端使用root访问共享目录时,将root用户的所属用户和所属组映射为匿名用户和组;
  • no_root_squash:不映射root用户的所属用户和所属组;
  • all_squash:客户端使用任何用户访问共享目录时,将访问用户的所属用户和所属组映射为匿名用户和组;
  • no_all_squash:所有用户不映射所属用户和所属组;
  • anonuid=:指定客户端上的访问用户映射为本地用户的UID(默认为65534);
  • anongid=:指定客户端上的访问用户映射为本地用户的GID(默认为65534);
  • Insecure:允许从某个客户端的访问用户非授权访问;
  • subtree_check:如果共享/usr/bin类的子目录时,强制服务器检查父目录的权限(默认);
  • no_subtree_check:不检查父目录权限;
  • wdelay:如果多个用户要写入NFS目录,则归组写入(默认);
  • no_wdelay:如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置;
  • hide:在共享目录中不共享其子目录;
  • no_hide:共享其子目录;
  • secure:NFS通过1024以下的安全TCP/IP端口发送;
  • insecure:NFS通过1024以上的端口发送;
[root@localhost ~]# cat /etc/passwd | grep nobody
nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin		/内核溢出用户;

[root@localhost ~]# mkdir -pv /nfs/share						/创建共享目录,注意权限;
[root@localhost ~]# ls -dl /nfs/share/
drwxr-xr-x. 2 root root 6 Jan 17 17:21 /nfs/share/

[root@localhost ~]# systemctl restart rpcbind.service 
[root@localhost ~]# systemctl restart nfs-server
[root@localhost ~]# showmount -e 192.168.14.131					/查看NFS服务器的共享列表;
Export list for 192.168.14.131:
/nfs/share 192.168.14.0/24
  • -a:以Host:Directory这样的格式来显示客户主机名和挂载点目录;
  • -d:仅显示被客户挂载的目录名;
  • -e:显示NFS服务器的输出清单;
[root@localhost ~]# mount 192.168.14.131:/nfs/share /medie		/挂载共享文件到本地目录;

[root@redhat8 ~]# df -Th
Filesystem                Type      Size  Used Avail Use% Mounted on
192.168.14.131:/nfs/share nfs4       18G  4.7G   14G  27% /media

[root@localhost ~]# cd /nfs/share/
[root@localhost share]# touch file1
[root@localhost share]# touch file2

[root@localhost ~]# cd /media
[root@localhost media]# ll
total 0
-rw-r--r--. 1 root root 0 Aug 29 14:24 file1
-rw-r--r--. 1 root root 0 Aug 29 14:24 file2

(2)配置读写NFS服务

[root@localhost ~]# vim /etc/exports
/nfs/share 192.168.14.0/24(rw)
[root@localhost share]# chmod o+rwx /nfs/share/		/注意文件权限,有则不加;
[root@localhost share]# ll /nfs/
total 0
drwxr-xrwx. 2 root root 58 Aug 29 14:54 share
[root@localhost share]# exportfs -ra				/重新读取exports文件下的所有共享文件;
  • -a:全部挂载或者全部卸载;
  • -r:重新挂载;
  • -u:卸载某一个目录;
[root@localhost media]# touch file3
[root@localhost media]# ll 
total 0
-rw-r--r--. 1 root   root   0 Aug 29 14:24 file1
-rw-r--r--. 1 root   root   0 Aug 29 14:24 file2
-rw-r--r--. 1 nobody nobody 0 Aug 29 14:26 file3

[root@localhost share]# ll
total 0
-rw-r--r--. 1 root   root   0 Aug 29 14:24 file1
-rw-r--r--. 1 root   root   0 Aug 29 14:24 file2
-rw-r--r--. 1 nobody nobody 0 Aug 29 14:26 file3

(3)客户端配置autofs自动挂载

[root@localhost ~]# dnf install -y autofs
Complete!

[root@localhost ~]# rpm -qc autofs
/etc/auto.master					/自动挂载配置文件;
/etc/auto.misc
/etc/auto.net
/etc/auto.smb
/etc/autofs.conf
/etc/autofs_ldap_auth.conf
/etc/sysconfig/autofs				/主配置文件;
/usr/lib/systemd/system/autofs.service

[root@localhost ~]# vim /etc/auto.master
/nfs    /etc/auto.nfs
#检测目录为 /nfs,该文件不需要存在,autofs可以自动创建该目录;
#对应的数据文件是 /etc/auto.nfs,名称可以自行定义;

[root@localhost ~]# vim /etc/auto.nfs
guazai	-ro	192.168.14.131:/data

[root@localhost ~]# vim /etc/exports
/data   *(ro)
[root@localhost ~]# mkdir /data
[root@localhost ~]# echo this is zxc > /data/file1

[root@localhost ~]# systemctl restart rpcbind
[root@localhost ~]# systemctl restart nfs-utils.service
[root@localhost ~]# systemctl restart autofs

[root@localhost ~]# mount | grep /nfs
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
/etc/auto.nfs on /nfs type autofs
(rw,relatime,fd=12,pgrp=33359,timeout=300,minproto=5,maxproto=5,indirect,pipe_ino=93241)

(4)配置autofs自动离线

[root@localhost ~]# vim /etc/autofs.conf 
15 TIMEOUT=3						/修改自动离线时间,默认时间为300s;
[root@localhost ~]# systemctl restart autofs

以上是关于Linux ❀ RHCE自研教学笔记 - Redhat 8.2 NFS服务教研笔记的主要内容,如果未能解决你的问题,请参考以下文章

Linux ❀ RHCE自研教学笔记 - Redhat 8.2 SFTP服务教研笔记

Linux ❀ RHCE自研教学笔记 - Redhat 8.2 SFTP服务教研笔记

Linux ❀ RHCE自研教学笔记 - Redhat 8.2 Nmcli服务教研笔记

Linux ❀ RHCE自研教学笔记 - Redhat 8.2 Nmcli服务教研笔记

Linux ❀ RHCE自研教学笔记 - Redhat 8.2 HTTP服务教研笔记

Linux ❀ RHCE自研教学笔记 - Redhat 8.2 FTP服务教研笔记