NFS服务配置超详细版

版权声明:原创作品,请勿转载!

本文使用linux(centos7.9)系统做演示,共3台服务器,分别是1c1g+20G,需提前配置好yum源

1.服务器规划

|--------|--------------|-------------|--------|
| 角色 | IP1 | IP2 | 主机名 |
| NFS服务端 | 10.0.0.31/24 | 172.16.1.31 | nfs |
| 客户端1 | 10.0.0.7/24 | 172.16.1.7 | web01 |
| 客户端2 | 10.0.0.41/24 | 172.16.1.41 | backup |

2.配置

2.1 服务端配置

2.1.1 安装软件

复制代码
[root@nfs01 ~]# yum install -y nfs-utils
Loaded plugins: fastestmirror

2.1.2 修改配置文件

复制代码
[root@nfs01 ~]# vim /etc/exports
[root@nfs01 ~]# cat /etc/exports
/data/ 172.16.1.0/24(rw,sync,all_squash)

2.1.3 创建数据目录,并更改属主属组

复制代码
[root@nfs01 ~]# mkdir /data
[root@nfs01 ~]# ll /data
total 0
[root@nfs01 ~]# id nfsnobody
uid=65534(nfsnobody) gid=65534(nfsnobody) groups=65534(nfsnobody)
[root@nfs01 ~]# ll -d /data
drwxr-xr-x. 2 root root 6 Mar 29  2024 /data
[root@nfs01 ~]# chown nfsnobody.nfsnobody /data
[root@nfs01 ~]# ll -d /data
drwxr-xr-x. 2 nfsnobody nfsnobody 6 Mar 29  2024 /data

2.1.4 启动服务,开机自启

复制代码
[root@nfs01 ~]# systemctl start nfs
[root@nfs01 ~]# systemctl enable nfs
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.

2.1.5 检查服务

复制代码
[root@nfs01 ~]# cat /var/lib/nfs/etab 
/data	172.16.1.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,rw,secure,root_squash,all_squash)

参数补充:

复制代码
读写权限相关
rw:表示允许客户端对共享目录进行读写操作。

数据同步相关
sync:要求NFS服务器在将数据写入磁盘后才返回操作成功的响应,这样可以保证数据的一致性,但会降低性能。
wdelay:如果有多个用户要写入NFS目录,会延迟写入,以提高写入效率。当使用async参数时,无需此设置。

目录显示与挂载相关
hide:隐藏该共享目录的子目录,客户端无法直接访问子目录。
nocrossmnt:不允许客户端跨越挂载点进行访问,即只能访问共享目录本身,不能访问其挂载点之外的其他文件系统。

安全相关
secure:要求NFS通过1024以下的安全TCP/IP端口发送数据,增强安全性。
root_squash:将客户端的root用户的所有请求映射成如anonymous用户一样的权限,避免客户端的root用户在共享目录上拥有过高的权限,增强系统安全性。
all_squash:将所有客户端用户的请求都映射成NFS服务器上的匿名用户(通常是nfsnobody)的权限,进一步增强安全性。
secure_locks:使用安全的文件锁机制,确保文件操作的并发安全性。
acl:启用访问控制列表,允许对共享目录进行更细粒度的权限控制。
no_pnfs:禁用并行NFS(Parallel NFS)功能,并行NFS可以提高大规模数据存储和访问的性能,但可能会带来一些兼容性问题,禁用它可以避免这些问题。

用户映射相关
anonuid=65534:指定匿名用户的UID为65534,当使用all_squash参数时,客户端用户会被映射成该UID对应的用户。
anongid=65534:指定匿名用户的GID为65534,与anonuid配合使用,确保用户和组的映射一致。

安全机制相关
sec=sys:指定使用系统级的安全机制进行身份验证和授权,这是NFS的一种常见安全机制。

2.2 客户端配置

2.2.1 安装软件

复制代码
[root@web01 ~]# yum install -y nfs-utils

只需安装服务,不需要启动

2.2.2 识别服务端共享目录

复制代码
[root@web01 ~]# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data 172.16.1.0/24

2.2.3 客户端挂载目录

复制代码
[root@web01 ~]# mount -t nfs 172.16.1.31:/data /mnt    #临时挂载
[root@web01 ~]# df -h
Filesystem         Size  Used Avail Use% Mounted on
devtmpfs           476M     0  476M   0% /dev
tmpfs              487M     0  487M   0% /dev/shm
tmpfs              487M  7.6M  479M   2% /run
tmpfs              487M     0  487M   0% /sys/fs/cgroup
/dev/sda3           18G  2.4G   16G  14% /
/dev/sda1          197M  110M   88M  56% /boot
tmpfs               98M     0   98M   0% /run/user/0
172.16.1.31:/data   18G  2.4G   16G  14% /mnt


[root@web01 ~]# vim /etc/fstab    #写入永久挂载
[root@web01 ~]# cat /etc/fstab 

172.16.1.31:/data	/mnt	nfs	defaults	0	0

3.测试

复制代码
[root@web01 ~]# cd /mnt
[root@web01 mnt]# ll
total 0
[root@web01 mnt]# touch test.txt
[root@web01 mnt]# ll test.txt 
-rw-r--r-- 1 nfsnobody nfsnobody 0 Jun 24 00:23 test.txt
[root@nfs01 ~]# ll /data/
total 0
-rw-r--r-- 1 nfsnobody nfsnobody 0 Jun 24 00:23 test.txt

nfs服务就先介绍到这里啦~

相关推荐
AOwhisky1 小时前
Linux(CentOS)系统管理入门笔记(第二十一期)——防火墙管理(Firewalld)——zone、服务端口、富规则与端口转发
linux·运维·笔记·安全·centos·防火墙
腾飞开源1 小时前
01_K8s干货笔记之认识K8s
运维·笔记·云原生·容器·kubernetes·k8s·容器化部署
tg_xianheyun7 小时前
CDN节点分布如何影响网页加载速度和用户体验
服务器·cdn加速·全球访问优化
lsh曙光8 小时前
延时at指令和定时cron指令
linux·服务器·网络
圆山猫8 小时前
[Virtualization](四):Linux KVM/RISC-V 的 vCPU 运行路径
java·linux·risc-v
布鲁飞丝8 小时前
vivo Pulsar 万亿级消息处理实践()-Ansible运维部署
运维·ansible
XR1234567888 小时前
企业全光网络架构选型技术白皮书:从物理层到运维层的全链路分析
运维·网络·架构
似的8358 小时前
一步一步学习使用FireMonkey动画() 使用TAnimator类创建动画
linux·学习·nginx
HiDev_9 小时前
【非标自动化】2、认识元器件(直线模组)
运维·自动化
夏殇之殁9 小时前
包中创建自定义列表项。 . 使用自定义列表项进行数据绑定 . 将天气预报数据保存到本地内存表,通过LiveBindings进行显示。 ...
服务器·前端·javascript