NFS配置方法
目录
1. 引言
2. 实验内容
3. NFS介绍
4. 环境准备
5. NFS 下载
6. 启动 NFS
7. RPCBIND(rpcbind)
8. NFS 服务的配置文件
9. 实验一:搭建 NFS 服务器,实现客户端间有序共享数据
第一步:创建 /share 文件夹,在文件夹内创建 1314520.txt 文本文件。
第二步(重点):修改 /etc/exports 主配置文件
第三步:打开一个新的虚拟机(客户端)
第四步:扫描服务器,确认共享目录是否已经配置
第五步:创建一个目录用于挂载服务器提供共享目录,并查看共享文件
10. 实验二:测试客户端文件写入操作,排查写入失败的核心原因
11. 实验三:实现 NFS 指定共享目录的开机自动挂载
(1)autofs 服务下载
(2)autofs 服务配置
(3)检验结果
12. 结语
1. 引言
本文将围绕NFS共享的核心实操需求,展开从服务搭建到自动挂载的完整流程,清晰拆解每一步的操作逻辑与关键要点,帮助你快速掌握NFS的配置方法。
2. 实验内容
实验一:搭建 NFS 服务器,实现客户端间有序共享数据;
实验二:测试客户端文件写入操作,排查写入失败的核心原因;
实验三:实现 NFS 指定共享目录的开机自动挂载。
3. NFS介绍
从名称入手,NFS全称为:Network file system ,可以理解为网络文件系统(也称呼为网盘)。目的就是为了将程序和资源进行隔离,让资源与程序各自占用一台服务器,防止因为资源问题,或者程序的问题导致整个服务的崩溃。
4. 环境准备
在开始下载NFS命令前,我们需要临时关闭SELiunx和防火墙。
临时关闭命令如下:
# 立刻关闭防火墙 systemctl stop firewalld # 禁止防火墙开机自启 systemctl disabled firewalld # 关闭SELinux setenforce 05. NFS 下载
下载NFS命令:
dnf install nfs-utils -y 补充:-y 跳过所有确认,全部都为确认,实现不交互。主要结果如下:
6. 启动 NFS
我们下载好NFS之后,NFS是默认不启动的。
(1)查看NFS服务启动命令:
systemctl status nfs-server结果如下:
图片主要信息解析:
1.Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; disabled; preset: disabled) 2.Active: inactive (dead) 1. 已加载:已加载(/usr/lib/systemd/system/nfs-server.service; 禁用 ;预设:禁用) 2. 活动状态:未激活(已停止)因此我们要使用NFS命令要先启动NFS服务。
(2)启动NFS命令(两种):
①仅本次启动 NFS 服务命令(不常用):
systemctl start nfs-server结果如下:
这个方法不太推荐,因为重启虚拟机后,又要重新开启NFS服务才能使用NFS命令。
下面推荐一个更方便的方法:
② 开机自启动 NFS 服务命令(推荐):
systemctl enable --now nfs-server结果如下:
7. RPCBIND(rpcbind)
这里我们有必要提一下rpcbind服务,在 Linux NFS 服务中,rpcbind 和 nfs-server 是搭配使用的核心服务。(我们刚刚上述的两种开启NFS服务的方法也会同时开启rpcbind服务。)
拓展小知识:
问:那这两各自是做什么的呢?
答:
rpcbind
NFS 是基于 RPC 远程过程调用 工作的
rpcbind 作用:把 NFS 等 RPC 服务映射到具体端口,让客户端能找到服务
监听端口:111(TCP/UDP)
没有它,NFSv3 基本无法使用
nfs-server
真正的 NFS 服务端
读取/etc/exports配置,对外提供文件共享
监听端口:2049
rpcbind 启动情况如下:
8. NFS 服务的配置文件
NFS的主配置文件在:/etc/exports。这个文件默认为空,负责管理要共享的目录,以及授权访问的范围。
vim /etc/exports(该文件初始默认为空,就不展示结果了)
9. 实验一:搭建 NFS 服务器,实现客户端间有序共享数据
第一步:创建/share文件夹,在文件夹内创建1314520.txt文本文件。
(命令过于简单就不额外编辑代码了)
第二步(重点):修改/etc/exports主配置文件
/etc/exports文件的配置格式:
共享文件夹路径 客户端 (权限,写入模式,账户映射 ,用户的映射,用户组映射) # 单个IP: 192.168.1.100 /24 (例) # 网段: 192.168.1.0/24 (例) # 所有主机: * # 主机名: test.com (例) # 权限 # rw:可读写 # ro:只读 # 写入模式 # sync:同步写入,数据安全,推荐使用 # async:异步写入,速度快但断电可能丢数据 # 关于账户映射 # root_squash:将root映射为nobody(默认情况下使用的root_squash),写了这个就不写用户身份映射 # no_root_squah:不对root的身份进行映射(慎用!) # all_squash:所有账户都做身份映射(all单指普通用户不包括root) # no_all_squash:所有账户都不做身份映射(all单指普通用户不包括root) # 关于用户身份的映射的设定 # anonuid:将客户端的用户映射为指定的uid的用户 # anongid:将客户端的用户组映射为指定的gid的用户组参考示例如下:
刷新配置(必须)命令:
exportfs -r第三步:打开一个新的虚拟机(客户端)
客户段的前期准备操作参照第4、5、6章节,这里就省略了。
第四步:扫描服务器,确认共享目录是否已经配置
查询服务端共享目录的命令:
showmount -e 服务器ip地址结果如下:
第五步:创建一个目录用于挂载服务器提供共享目录,并查看共享文件
挂载命令格式如下:
mount 服务器ip地址:共享文件夹路径 客户端接收的文件夹路径结果如下:
(1)挂载
(2)挂载结果
(3)共享文件
至此,实验一结束。
10. 实验二:测试客户端文件写入操作,排查写入失败的核心原因
当我们尝试在客户端的共享文件夹内创建文件的时候,就会发现权限不足,因此我们只要在服务器修改权限即可。
①在服务器修改文件权限。
chmod -R 747 /share②测试客户端能否成功创建文件
成功创建,至此实验二结束。
11.实验三:实现 NFS 指定共享目录的开机自动挂载
细心的你一定发现了,如果客户端要使用服务端所提供的文件系统,就要进行挂载,这样操作过于繁琐,因此就需要用到开机自动挂载服务。
(1)autofs 服务下载
要想实现自动挂载,我们需要下载autofs服务 。
下载autofs
dnf install autofs -y设置开机自启动autofs:
systemctl enable --now autofs(2)autofs 服务配置
autofs下有两个重要文件: /etc/autofs.conf(主服务配置)+ /etc/auto.master(挂载映射表)
/etc/autofs.conf:用来设置autofs服务的一些相关属性,例如:timeout决定 共享目录空闲多久后自动卸载
/etc/auto.master:告诉autofs要监听哪些目录、去哪里读具体挂载规则
文件格式:
挂载目录 子配置文件 # 挂载目录:不需要事先存在,因为autofs会主动建立该目录 # 子配置文件:文件名可自定义创建配置文件: /etc/auto.guazai
格式:
接收共享文件目录 服务端ip:/共享文件夹示例:
重启autofs服务
systemctl restart autofs(3)检验结果
cd /guazai/airaury结果如下:
成功挂载,至此实验三结束。
12.结语
通过这次实验,我们对 NFS 的安装、启动、配置和使用过程有了比较清楚的认识,也实际完成了共享目录搭建、客户端挂载、文件写入测试以及开机自动挂载等操作。整个实验让我们更直观地理解了 NFS 在 Linux 系统中的作用,也提高了我们对文件共享服务配置与故障排查的能力。
总的来说,这次实验内容比较实用,操作步骤也比较清晰。通过亲手实践,我们不仅掌握了相关命令的使用方法,也为以后学习和搭建类似的网络服务打下了一定基础。
