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服务就先介绍到这里啦~

相关推荐
Fanmeang3 分钟前
OSPF高级特性之FRR
运维·网络·华为·ip·ospf·spf·frr
小张不嚣张꒰ঌ(˚ᆺ˚)໒꒱3 分钟前
Centos7在yum当中遇到Could not resolve host: mirrorlist.centos.org解决方案
linux·运维·服务器·centos
Sally璐璐5 分钟前
CentOS企业级文件服务器终极部署指南
linux·服务器·centos
岁月玲珑6 分钟前
【如何判断Linux系统是Ubuntu还是CentOS】
linux·ubuntu·centos
梅孔立6 分钟前
yum update 报错 Cannot find a valid baseurl for repo: centos-sclo-rh/x86_64 等解决办法
linux·python·centos
ldj20207 分钟前
Centos 安装Jenkins
java·linux
Sca_杰10 分钟前
centos指令
linux·运维·centos
几道之旅12 分钟前
centos 7 安装NVIDIA Container Toolkit
linux·运维·centos
DuelCode12 分钟前
Windows VMWare Centos Docker部署Nginx并配置对Springboot应用的访问代理
linux·运维·服务器
数据智能老司机18 分钟前
Linux内核编程——网络驱动程序
linux·架构·操作系统