Linux/centos上如何配置管理NFS服务器?

简介: Linux/centos上如何配置管理NFS服务器?

1 NFS基础了解

  • NFS(Network File System)即文件操作系统;
  • NFS允许网络中不同计算机相互之间共享资源。

    1.1 NFS概述

  • 1980年由SUN发展出来的在UNIX&Linux系统间实现文件共享的一种方法;
  • 是一种文件系统协议,支持应用程序在客户端通过网络存取位于服务器磁盘中的数据;
  • NFS只提供网络文件共享,不提供数据传输功能;
  • NFS客户端和服务端需借助RPC(Remote Procedure Calls)实现数据传输;
  • NFS服务器目录被访问称为导出(export),客户机访问导出目录过程称为挂载(mount)或导入(import)。

1.2 NFS工作流程

第一步:访问NFS共享资源,NFS客户端发出询问请求,即客户端RPC服务通过网络向服务端RPC服务的111端口发出询问请求。

第二步: NFS服务端RPC找到对应已注册的NFSdaemon端口,通知客户端RPC;

第三步:NFS客户端获取端口,直接与NFSNFSdaemon联机存储数据。

第四步:NFS客户端吧数据存储成功后,告诉用户结果。

2 安装和启动NFS服务

2.1 安装NFS服务器

  • 一般情况,系统均已安装NFS;
  • 先检查下是否安装NFS,以下两个是相关的依赖包:
rpm -qa | grep nfs-utils
rpm -qa | grep rpcbind
  • 经检查是已经安装了的:
    在这里插入图片描述
  • 如果系统没有安装NFS依赖包,则需要安装:
yum clean all
yum -y install nfs-utils rpcbind

2.2 启动NFS服务

  • NFS状态查看:
systemctl status rpcbind.service
systemctl status nfs.service

在这里插入图片描述

  • 启动NFS服务:
systemctl start rpcbind.service
systemctl start nfs.service
  • 再次查看状态,都是启动的:
    在这里插入图片描述
  • 停止NFS服务:
systemctl stop nfs.service
  • 重启NFS服务:
systemctl restart nfs.service
  • 设置开机自启动NFS服务:
systemctl enable rpcbind.service 
systemctl enable nfs.service

3 配置NFS服务器和客户端

3.1 配置NFS服务器

  • 配置文件在/etc/exports
  • 格式为:
共享目录 [客户端1(参数)] [客户端2(参数)]

共享目录:NFS服务器需要共享的实际路径(绝对路径);
客户端:可以访问共享目录的计算机。

  • 客户端常用形式:
客户端 说明
192.168.1.111 指定IP地址的主机
192.168.1.0/24 指定子网的所有主机
192.168.1.* 指定子网的所有主机
www.xxx.com 指定域名的主机
*.xxx.com 指定域中的所有主机
* 所有主机

访问权限参数:访问权限设置。

  • 常用访问权限:
访问权限 说明
ro 只读
rw 读写

用户映射参数

  • 用户映射参数表:
用户映射 说明
all_squash 将远程访问的所有用户映射为匿名用户或用户组(nfsnobody)
no_all_squash 与上边相反(默认设置)
root_squash 将root用户...... (默认设置)
no_root_squash 与上边相反
anonuid=xxx 将该匿名账号为本地账号(UID=xxx
anongid=xxx 将该匿名用户组为本地用户组(GID=xxx)

其它参数:对输出目录进行控制。

  • 常用其它参数:
其它参数 说明
secure 限制客户端只能从小于1024的TCP/IP端口链接NFS
insecure 语序客户端大于1024的TCP/IP端口连接NFS
sync 将数据同步写入内存缓冲区与磁盘中
async 将数据先保存在缓冲区中,必要时才写入磁盘
wdelay 检查是否有相关的写操作
no_wdelay 有写操作立即执行,与sync配合使用
subtree_check 若输出目录为子目录,则NFS服务器将检查父目录的权限
no_subtree_check 若输出目录为子目录,则NFS服务器不检查父目录的权限
  • 比如将/mnt/temp目录,只给IP为172.16.1.33的计算机进行读写权限:
/mnt/temp 172.16.1.33 (rw, sync)
  • 比如将/mnt/temp01目录,只给子网中为172.16.1.0/24的计算机进行读写权限,其他计算机制只读权限:
/mnt/temp0 172.16.1.0/24 (rw, async) * (ro)

3.2 配置NFS客户端

  • 查看NFS服务器信息:
showmount [选项] (参数)

-d:仅显示已被NFS客户端加载的共享目录;
-e:显示NFS服务器上所有的共享目录。

showmount -e 192.168.0.190

在使用showmount时建议关闭防火墙,将SELinux设为为允许。

systemctl stop firewalld.service
setenforce 0
getenforce
  • 挂在NFS服务器的共享目录:

将NFS的共享目录挂在到本地:
mount -t NFS服务器IP:输出目录 本地挂在目录

  • 比如:
mkdir /mnt/mytemp
mount -t nfs 192.168.0.190:/mnt/mytemp /mnt/mytemp
  • 卸载NFS服务器:
umount 挂载点
  • 启动时自动挂在NFS共享目录:
192.168.0.190/mnt/temp /mnt/mytemp nfs defaults 0 0

4 实际示例

4.1 基本要求

  • NFS服务器192.168.0.190;
  • 要求1:共享目录/mnt/temp,允许192.168.0.0/24网段内计算机访问;
  • 要求2:共享目录/mnt/share, 允许用户zhang访问,IP为192.168.0.10;
  • 要求3:共享目录/mnt/upload,允许192.168.0.0/24网段作为上传目录,所属组为nfsupload,UID和GID均为666;
  • 要求4:共享目录/mnt/nfs,除192.168.0.0/24网段用户访问,只读,可向internet提供数据内容;

    4.2 案例实现

  • 安装NFS服务:
yum -y install rpcbind
yum -y install nfs-utils
  • 创建目录和测试文件:
# 创建目录:
mkdir -p /mnt/temp
mkdir -p /mnt/share
mkdir -p /mnt/upload
mkdir -p /mnt/nfs

# 创建测试文件
touch /mnt/temp/temp1.txt /mnt/temp/temp2.txt 
touch /mnt/share/data1.txt /mnt/share/data2.txt
touch /mnt/upload/upload.txt
touch /mnt/nfs/nfs1.txt /mnt/nfs/nfs2.txt

在这里插入图片描述
在这里插入图片描述

  • 设置共享目录权限属性:
# 要求1:
chmod 1777 /mnt/temp/
ll -d /mnt/temp/

在这里插入图片描述

# 要求2:
useradd zhang
passwd zhang
cat /etc/passwd | grep zhang
chmod 700 /mnt/share/
chown -R zhang:zhang /mnt/share/
ll -d /mnt/share/

在这里插入图片描述

# 要求3:
groupadd -g 666 nfsupload
useradd -g 666 -u 666 -M nfsupload
cat /etc/passwd | grep nfs
chown -R nfsupload:nfsupload /mnt/upload
ll -d /mnt/upload/

在这里插入图片描述

# 要求4:
ll -d /mnt/nfs/

在这里插入图片描述

  • 编辑/etc/exports
/mnt/temp 192.168.0.0/24 (rw,no_root_squash)
/mnt/share 192.168.0.10 (rw)
/mnt/upload 192.168.0.0/24 (rw,all_squash,anonuid = 666,anongid = 666)
/mnt/nfs 192.168.0.0/24 (ro) * (rw,all_squash)
  • 关闭防火墙,设置Selinux为允许,重启NFS服务:
systemctl stop firewalld.service
setenforce 0
getenforce
systemctl restart nfs
  • NFS客户端安装客户端软件:
yum -y install nfs-utils
  • 查看NFS服务器上共享的目录:
showmount -e 192.168.0.190

在这里插入图片描述

  • 在客户机上创建目录,将NFS的目录挂在到该目录:
mkdir /mnt/ClientNFS
mount -t nfs 192.168.0.190:/mnt/nfs/ /mnt/ClientNFS/
  • 同样方法去挂载其他的NFS目录即可;
  • 并在客户机上创建组666:
groupaddd -g 666 nfsupload
useradd -g 666 -u 666 -M nfsupload
目录
相关文章
|
5月前
|
安全 Linux Shell
使用SCP命令在CentOS 7上向目标服务器传输文件
以上步骤是在CentOS 7系统上使用SCP命令进行文件传输的基础,操作简洁,易于理解。务必在执行命令前确认好各项参数,尤其是目录路径和文件名,以避免不必要的传输错误。
517 17
|
4月前
|
Ubuntu 安全 小程序
服务器版本的CentOS和Ubuntu哪个更适合你?
但是以上的比较并不说明Ubuntu是不稳定的或者是不安全的,只是以上比较过程中,在稳定性方面Ubuntu稍微逊色了一点。由于Ubuntu在个人桌面电脑的使用率远远高于CentOS,用Ubuntu搭建服务器,如果遇到什么问题,寻找解决方案相对比较容易,这让Ubuntu在选择方面更优于CentOS。如果你是一个初学者,那么毫无疑问Ubuntu是更适合的选择。如果你正在经营自己的公司,在这两者之间,CentOS会更好一些。
|
5月前
|
安全 关系型数据库 网络安全
安全加固:启动PostgreSQL 14服务器SSL加密的方法指南在CentOS 7环境中
通过上述步骤,你可以为PostgreSQL数据库服务器设置SSL加密,从而增加数据在传输中的安全性。确保维持证书的有效性,并且定期更新和管理密钥,以防止未授权访问。
242 0
|
2月前
|
弹性计算 运维 安全
阿里云轻量应用服务器与云服务器ECS啥区别?新手帮助教程
阿里云轻量应用服务器适合个人开发者搭建博客、测试环境等低流量场景,操作简单、成本低;ECS适用于企业级高负载业务,功能强大、灵活可扩展。二者在性能、网络、镜像及运维管理上差异显著,用户应根据实际需求选择。
226 10
|
2月前
|
运维 安全 Ubuntu
阿里云渠道商:服务器操作系统怎么选?
阿里云提供丰富操作系统镜像,涵盖Windows与主流Linux发行版。选型需综合技术兼容性、运维成本、安全稳定等因素。推荐Alibaba Cloud Linux、Ubuntu等用于Web与容器场景,Windows Server支撑.NET应用。建议优先选用LTS版本并进行测试验证,通过标准化镜像管理提升部署效率与一致性。
|
2月前
|
弹性计算 ice
阿里云4核8g服务器多少钱一年?1个月和1小时价格,省钱购买方法分享
阿里云4核8G服务器价格因实例类型而异,经济型e实例约159元/月,计算型c9i约371元/月,按小时计费最低0.45元。实际购买享折扣,1年最高可省至1578元,附主流ECS实例及CPU型号参考。
359 8
|
2月前
|
存储 监控 安全
阿里云渠道商:云服务器价格有什么变动?
阿里云带宽与存储费用呈基础资源降价、增值服务差异化趋势。企业应结合业务特点,通过阶梯计价、智能分层、弹性带宽等策略优化成本,借助云监控与预算预警机制,实现高效、可控的云资源管理。
|
2月前
|
弹性计算 运维 安全
区别及选择指南:阿里云轻量应用服务器与ECS云服务器有什么区别?
阿里云轻量应用服务器适合个人开发者、学生搭建博客、测试环境,易用且性价比高;ECS功能更强大,适合企业级应用如大数据、高流量网站。根据需求选择:轻量入门首选,ECS专业之选。
225 2
|
2月前
|
弹性计算 ice
阿里云4核8G云服务器配置价格:热门ECS实例及CPU处理器型号说明
阿里云2025年4核8G服务器配置价格汇总,涵盖经济型e实例、计算型c9i等热门ECS实例,CPU含Intel Xeon及AMD EPYC系列,月费159元起,年付低至1578元,按小时计费0.45元起,实际购买享折扣优惠。
417 1