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

相关推荐
小此方29 分钟前
告别云服务器连接困扰——Windows下利用VirtualBox安装配置Ubuntu虚拟机详细教程
服务器·windows·ubuntu
wuyk5553 小时前
【Socket 进阶之路】第 3 章 TCP 三次握手 & 四次挥手深度剖析|连接建立、断开、状态机、TIME_WAIT 核心工程问题
服务器·开发语言·网络·物联网·网络协议·tcp/ip
一技安身8 小时前
【Docker】 镜像导出 & 导入,实验环境aarch64(arm64)Linux操作系统
linux·docker·容器
平头哥AI8 小时前
Day 22 _ 包装错误别丢链_%w、errors.Is 与 errors.As
android·服务器·学习·golang·go
代码村新手9 小时前
Linux调试器-gdb的使用
linux
新时代牛马10 小时前
PCI与PCIe 硬件原理、配置空间/BAR 与 Linux 驱动完整篇:从 LTSSM、TLP 到 ECAM 与probe
java·linux·服务器
两点王爷11 小时前
解决 Linux 中 version `CXXABI_1.3.8‘ not found 报错
linux·运维·服务器
xx~t11 小时前
嵌入式——51单片机1
linux·c语言·单片机·嵌入式硬件·51单片机
啦啦啦啦啦zzzz11 小时前
利用RAII机制进行日志的采集
linux·服务器·c++·网络编程·c++20
0+11111 小时前
Linux --线程概念与控制
linux·运维·服务器·jvm