OpenEuler 配置 NFS 网络文件共享实验

一、NFS简介

NFS(Network File System,网络文件系统),用于Linux主机之间通过局域网共享目录。

服务器发布共享目录,客户端通过mount挂载到本地,操作如同本地文件夹。

NFS:Linux↔Linux共享;
Samba:Linux↔Windows共享。

实验环境

  • 操作系统:OpenEuler
  • 服务器IP:192.168.119.134
  • 两台虚拟机网卡全部设置为NAT模式,保证同一网段互通
  • 服务端软件包:nfs‑utils;客户端软件包:nfs‑utils

实验要求

  1. /home/share目录共享出去,供192.168.1.0/24网段读写,其余主机仅只读。
  2. /nfs/public目录共享,供*.mlx.com域读写;允许大于1024端口;所有用户映射匿名nfsnobody;sync同步写入,no_wdelay立即执行写操作。
    在这里插入图片描述

二、NFS服务端操作

1.安装软件包
dnf install -y nfs-utils

2.创建共享目录
mkdir -p /home/share
mkdir -p /nfs/public

3.编辑配置文件/etc/exports
vi /etc/exports
写入:在这里插入图片描述
4.设置目录权限,
⚠️ 注意:chmod 777仅虚拟机实训环境使用,生产环境严禁使用 777 高危权限!
chmod 777 /home/share
chmod 777 /nfs/public

5.启动nfs服务,加载共享
systemctl enable --now nfs-server
exportfs -r #重载配置
exportfs -v #查看生效共享参数
showmount -e localhost

6.关闭防火墙与SElinux
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
systemctl status firewalld在这里插入图片描述

三、客户端操作

1.安装工具,测试联通性
dnf install -y nfs-utils
ping 192.168.119.134

2.挂载nfs共享
mount -t nfs 192.168.119.134:/home/share /mnt
mount -t nfs 192.168.119.134:/nfs/public /media

3.验证挂载与读写
df -h #查看挂载状态
在这里插入图片描述

touch /media/tese.txt #客户端创建测试文件。笔误,本意 test.txt
ls /media
在这里插入图片描述

四、踩坑与故障排错

故障 1:mount.nfs: access denied by server while mounting

现象:客户端挂载直接拒绝访问
原因:exports 配置限制域名*.mlx.com,客户端 IP 不匹配该域名规则。
解决:修改 exports 为允许对应网段或者*,执行exportfs -r重载。

故障 2:df‑h 显示挂载成功,ls /media 提示 Permission denied

现象:挂载成功,但是访问目录权限拒绝
原因:

  1. all_squash 将客户端全部用户映射匿名 nfsnobody;
  2. 目录权限 770,匿名用户无访问权限;
  3. 前期虚拟机网卡模式不一致,网络排错干扰。
    解决:
  4. 两台虚拟机统一 NAT 模式,保证网络互通;
  5. 服务端执行chmod 777 /nfs/public
  6. exportfs -r重载配置;
  7. 客户端 umount 卸载,重新 mount 挂载。

故障 3:exportfs‑r 警告 Neither’subtree_check’ or ‘no_subtree_check’ specified

现象:配置加载成功,但输出警告
解决:在每一条 exports 配置增加参数no_subtree_check消除警告。

五、关键参数说明

表格

参数说明
all_squash所有客户端用户映射匿名 nfsnobody
no_root_squash客户端 root 不映射匿名用户(实训常用)
sync数据同步写入磁盘
insecure允许客户端使用大于 1024 端口连接

总结

  1. NFS 权限双重校验:exports 配置参数 + 服务器本地目录权限,两者缺一不可
  2. all_squash 开启时,共享目录必须给匿名用户访问权限。
  3. 修改 /etc/exports 后必须执行exportfs -r才会生效,不需要重启服务。
Logo

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

更多推荐