【centOS7】物理机配置 NFS(Network File System)超详细最完整教程

在 CentOS 7 物理机上配置 NFS(Network File System)按照以下步骤进行操作:
目标:实现A共享目录,B访问A
前置条件:准备两台主机A和B,且在同一局域网
环境准备

系统角色 IP
CentOS7服务端(A) 192.168.81.137
CentOS7客户端(B) 192.168.81.138

一、配置A端
1.安装 NFS 软件包:sudo yum install nfs-utils
打开终端或命令行界面,在物理机上以 root 用户或具有管理员权限的用户身份执行命令安装 
2.如何共享home目录
第一步:安装 NFS 软件包
第二步:配置 NFS 服务器
编辑 NFS 服务器配置文件 /etc/exports
打开终端并执行命令:sudo vi /etc/exports
配置文件添加共享目录的配置:/home *(rw,sync,no_root_squash)

保存并关闭文件:wq

更新配置:sudo exportfs -r
3.启动 NFS 服务
执行命令启动 NFS 服务:sudo systemctl start nfs-server

4.设置 NFS 服务开机自启动:
执行命令将 NFS 服务设置为开机自启动:sudo systemctl enable nfs-server

5.配置防火墙:
如果 CentOS 7 上的防火墙(firewalld)正在运行,需要允许 NFS 流量通过防火墙
执行以下命令开放 NFS 服务的端口:
sudo firewall-cmd --permanent --zone=public --add-service=nfs
sudo firewall-cmd --permanent --zone=public --add-service=rpc-bind
sudo firewall-cmd --permanent --zone=public --add-service=mountd
sudo firewall-cmd --reload
6.如何共享新建目录
第一步:安装 NFS 软件包
第二步:创建新建共享目录:sudo mkdir /shared_directory
第三步:配置 NFS 服务器
编辑 NFS 服务器配置文件 /etc/exports
打开终端并执行命令:sudo vi /etc/exports
配置文件添加新建共享目录的配置:/shared_directory *(rw,sync,no_root_squash)

保存并关闭文件:wq

更新配置:sudo exportfs -r
7.注释

参数 表示含义
192.168.X.XXX 客户端IP地址
/home 是需要共享的目录
/shared_directory 是需要共享的新建目录
‘* 表示允许所有客户端访问
rw 表示允许读写访问
sync 表示数据同步写入内存和硬盘中,保证数据的安全性
rsync 数据暂存于内存中,而非直接写入硬盘
no_root_squash 表示允许 root 用户访问共享目录
no_all_squash 不论NFS客户端连接服务端时使用什么用户,对服务端分享的目录来说都不会拥有匿名用户权限。

8.如果指定IP客户端访问/home目录,例如:IP 地址为 192.168.81.137 的客户端

参数 表示含义
/home *(rw,sync,no_root_squash) 允许所有客户端以读写模式(rw)访问/home目录,并保持同步(sync)。no_root_squash选项将允许客户端以root权限访问共享目录。
/home 192.168.X.XXX(rw,sync,no_root_squash) 允许81.137客户端以读写模式(rw)访问/home目录,并保持同步(sync)。no_root_squash选项将允许客户端以root权限访问共享目录。

9.查看nfs服务器挂载情况:showmount -e localhost

现在,你的 CentOS 7 物理机已经配置了 NFS 服务器。其他客户端可以使用 NFS 协议访问共享目录。

二、配置B端
1.安装 NFS 软件包:sudo yum install nfs-utils
打开终端或命令行界面,在客户端上以 root 用户或具有管理员权限的用户身份执行命令安装

2.在客户端挂载共享目录:
在要访问共享目录的客户端上执行以下命令:sudo mkdir /mnt/home
在要访问共享目录的客户端上执行以下命令:sudo mkdir /mnt/shared_directory
3. 挂载 NFS 共享目录:
执行命令将 NFS 共享目录挂载到客户端的挂载点上,将 <NFS_server_IP>替换为服务端的 IP 地址,<home/shared_directory>替换为共享目录的路径
模板:sudo mount -t nfs <NFS_server_IP>:/home /mnt/home
替换:sudo mount -t nfs 192.168.81.137:/home /mnt/home
模板:sudo mount -t nfs <NFS_server_IP>:/shared_directory /mnt/shared_directory
替换:sudo mount -t nfs 192.168.81.137:/shared_directory /mnt/shared_directory
4. 验证挂载:
执行命令检查挂载是否成功:df -h
5.如果成功,挂载点 /mnt/home`列在输出中,表示共享目录已经成功挂载到客户端上

6.如果你希望每次启动客户端时自动挂载共享目录,可以将挂载信息添加到客户端的/etc/fstab文件中:
第一步:编辑配置文件 /etc/fstab
打开终端并执行命令:vi /etc/fstab
执行命令将 NFS 共享目录挂载信息添加到客户端的/etc/fstab文件上,将 <NFS_server_IP>替换为服务端的 IP 地址
模板:<NFS_server_IP>:/home /mnt/home nfs defaults 0 0
替换:192.168.81.137:/home /mnt/home nfs defaults 0 0
模板:<NFS_server_IP>:/shared_directory /mnt/shared nfs defaults 0 0
替换:192.168.81.137:/shared_directory /mnt/shared_directory nfs defaults 0 0

7.使用命令来测试挂载配置是否正确:sudo mount -a
如果没有出现错误提示,则说明挂载配置已成功加载。你可以重新启动客户端来验证是否在启动时自动挂载了共享目录。
三、可能出现的问题
报错:mount.nfs: No route to host
这个错误通常表示无法到达目标主机,请确保在执行该命令之前,您的机器可以访问目标机器的 IP 地址,并且目标机器上的 NFS 服务正在运行。
您可以通过以下几种方法来解决这个问题:
1.使用命令检查NFS服务的状态:sudo systemctl status nfs

2.检查网络连接
检查您的机器与目标机器之间的网络连接,确保它们可以互相访问。您可以尝试使用 ping 命令来测试网络连接,例如:


3.检查目标机器的防火墙设置
如果目标机器的防火墙已启用,请确保已将 NFS 服务端口添加到防火墙规则中。NFS 默认使用 TCP 和 UDP 端口 2049。使用命令检查目标机器上的防火墙设置:firewall-cmd --list-all

4.添加防火墙规则

四、访问挂载的共享Home目录
要访问挂载的共享Home目录,你可以通过本地系统上的挂载点路径来访问。在上面的例子中,我们使用 /mnt/home 作为挂载点。
1、使用命令来访问挂载的共享Home目录:cd /mnt/home

这将切换到挂载的共享Home目录。现在你可以使用常规的文件操作命令(例如 lscpmv)来查看和操作远程主机上的Home目录文件。当你完成对共享Home目录的操作后,你可以使用 cd 命令返回到其他目录
五、验证A创建文件,B能查询
1.服务端创建ty.txt
使用命令创建目标路径:mkdir -p /mnt/home
使用命令创建目标文件:touch /mnt/home/ty.txt
查询命令查找目标文件:ls /mnt/home/ty.txt

2.客户端查询ty.txt
现在,你可以在客户端上访问并使用挂载的共享目录 `/mnt/shared_directory`,并对其中的文件进行读写操作。请确保客户端能够与 CentOS 7 物理机正常通信,并且在客户端的防火墙中允许 NFS 流量通过。

猜你喜欢

转载自blog.csdn.net/weixin_71435518/article/details/131871795