目录

一、引言

NFS简介

NFS工作原理

示例图

流程

NFS的使用

二、实验:实现自动挂载目录

1.环境准备

注:提前在客户端 服务端安装NFS服务。

2.服务端server配置

3.客户端client配置

4.自动挂载实现

三、常见问题与排错

八、总结与经验

一、引言

        在 Linux 系统中,NFS(Network File System)是实现跨主机共享文件的常用方案。通过自动挂载 NFS 目录,我们可以在系统启动时自动访问远程共享,极大提升管理效率。本篇博客将结合 RHCE 作业,详细介绍如何实现指定目录的自动挂载,并分享实践中的技巧与注意事项。

NFS简介

        NFS 是 Linux/Unix 系统提供的一种网络文件系统协议,允许一台机器(客户端)像访问本地文件一样访问另一台机器(服务器)上的目录或文件。

功能:

  • 分享主机的运算能力

  • 服务器类型:有限度开放连接

  • 工作站类型:只对内网开放

应用场景:

  • 多台服务器共享同一数据目录
  • 集中管理用户文件
  • 配合自动化脚本提高运维效率

NFS工作原理

示例图

流程
  • 首先服务器端启动RPC服务,并开启111端口

  • 服务器端启动NFS服务,并向RPC注册端口信息

  • 客户端启动RPC(portmap服务),向服务端的RPC(portmap)服务请求服务端的NFS端口

  • 服务端的RPC(portmap)服务反馈NFS端口信息给客户端。(服务器搭建成功后可以使用下列命令查看,一般都是2049)

NFS的使用

1.先安装NFS服务:

# 安装nfs-utils (包含nfs-server nfs-client rpcbind)
[root@server ~]# dnf install nfs-utils -y

# 启动以及开机自启动 nfs-server
[root@server ~]# systemctl enable --now nfs-server

# 检查服务的状态
[root@server ~]# systemctl status nfs-server

当看到服务状态为enabled,即为设置成功。

二、实验:实现自动挂载目录

1.环境准备

在本次实验中我使用:

角色 操作系统 IP 地址
NFS 服务端 RHEL 8 / CentOS 8 192.168.238.128
NFS 客户端 RHEL 8 / CentOS 8 192.168.238.129
共享网段

192.168.238.0/24

注:提前在客户端 服务端安装NFS服务。

2.服务端server配置

[root@server ~]# mkdir /nfs_server1          #创建共享目录
[root@server ~]# chmod 777 /nfs_server1      #设置共享目录权限
                                        
[root@server ~]# ll  -d /nfs_server1         #查看设置是否成功


[root@server ~]# vim /etc/exports            #配置NFS共享文件

#写下以下内容
 /nfs_server1 192.168.238.129/24(rw,root_squash)

#共享目录      允许访问客户端IP


# 关于账户映射 
# root_squash:将root映射为nobody(默认情况下使用的root_squash,推荐使用!)
# no_root_squah:不对root的身份进行映射(!不推荐!慎用!)
# all_squash:所有账户都做身份映射(all单指普通用户不包括root)
# no_all_squash:所有账户都不做身份映射(all单指普通用户不包括root)

这里大家可自行选择然后做相应配置

root@server ~]# exportfs -r                #重新加载NFS配置
[root@server ~]# exportfs -v               #验证共享

结果展示:

3.客户端client配置

  • 手动挂载验证(验证 NFS 可用)
  • 先测试服务端是否正常,避免后面排错困难。
#手动挂载
[root@client ~]# mkdir /nfs_client1
[root@client ~]#  mount 192.168.238.128:/nfs_server1 /nfs_client1  
# 创建一个nfs_client目录用于挂载服务器提供共享目录
[root@client ~]# showmount -e 192.168.238.128
# 创建一个nfs_client目录用于挂载服务器提供共享目录
Export list for 192.168.238.128:
/nfs_server1 192.168.238.129/24

#验证
[root@server nfs_server1]# touch hh 
#此为服务端配置

[root@client ~]# ll /nfs_client1

能正常看到文件,说明 NFS 网络与权限无问题。

结果展示:

 注意事项

  • 客户端防火墙要开放 NFS 端口
  • 检查服务端 /etc/exports 配置

4.自动挂载实现

客户端配置 autofs 按需自动挂载(核心重点)

autofs 的工作逻辑:

  1. 定义映射文件:指定 “挂载点 → 远程 NFS 路径”
  2. 编辑主配置文件 /etc/auto.master
  3. 配置文件/etc/autofs.conf

    关于服务的一些属性设定比如可以修改 timeout 来决定 共享目录空闲多久后自动卸载

  4. 访问目录时自动挂载,超时自动卸载

 /etc/auto.master

# 该文件是autofs的主配置文件文件,在该文件中可以常见自定义的自动挂载目录,只需进入该目录即可实现自动的挂载

此为主文件配置方法:

# 该文件是autofs的主配置文件文件,在该文件中可以常见自定义的自动挂载目录,只需进入该目录即可实现自动的挂载
vim /etc/auto.master

/hahaha  /etc/auto.hahaha
# 在主配置文件中创建 自定义挂载目录/hahaha 关于自动挂载的详细配置 写在 /etc/auto.hahaha


vim /etc/auto.hahaha

fromserver 172.25.254.100:/nfs_server
# 首先autofs重启之后,会自动在跟目录下创建/hahaha,当用户进入fromserver目录时,autofs会自动闯将172.25.254.100:/nfs_server 挂在到 /hahaha/fromserver目录下

学会了怎样配置主文件后接下来进行本实验最后阶段:

# 1.安装autofs
[root@client ~]# dnf install autofs
[root@client ~]# systemctl enable --now autofs
#配置auto.master 指定自动挂载目录/hhh 以及 /hhh的配置文
[root@client ~]# vim /etc/auto.master
在中写入
/hhh /etc/auto.hhh
# 创建配置文件/auto.hhh
[root@client ~]# vim /etc/auto.hhh
写入
fromserver 192.168.238.128:/nfs_server1
[root@client ~]# systemctl restart autofs    
root@client ~]# cd /hhh/fromserver
[root@client fromserver]# tree /hhh    #验证是否挂载成功

结果展示:

三、常见问题与排错

1. showmount 无法查看共享:
  •  检查服务端防火墙。
  •  检查 rpcbind、nfs 服务是否正常运行。
2. 客户端无法挂载:
  • ping 服务端 IP 测试网络:
  •  检查 exports 配置是否写错网段。
3. autofs 不自动挂载:
  •  查看日志: /var/log/messages 。
  • ​ 检查配置文件格式、空格、缩进。

八、总结与经验

         本文通过完整实战流程,完成了 NFS 网络文件系统服务端配置 与 autofs 自动挂载 的实现,覆盖了 RHCE 考试中的高频考点,也贴合企业生产环境的实际使用场景。
 
        通过本文的步骤,你可以掌握:NFS 服务部署、exports 权限配置、防火墙与 SELinux 处理、autofs 主配置与子配置编写、挂载验证及常见故障排查思路,无论是用于 RHCE 备考,还是在生产环境中搭建目录共享服务,都具备直接落地的实用价值。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐