Linux【实战篇】—— NFS服务搭建与配置
目录
一、介绍
1.1什么是NFS?
1.2客户端与服务端之间的NFS如何进行数据传输?
1.3RPC和NFS的启动顺序
1.4NFS服务 系统守护进程
二、安装NFS服务端
2.1安装NFS服务
2.2 创建共享目录
2.3创建共享目录首页文件
2.4关闭防火墙
2.5启动NFS服务
2.6配置文件的编写格式
2.7配置NFS服务
2.8服务端管理NFS相关命令
三、安装NFS客户端
3.1安装NFS客户端和httpd服务
3.2关闭防火墙
3.3启动服务
3.4查看NFS服务器共享的目录
3.5 将共享目录挂载到客户端目录
3.6浏览器访问客户端IP
一、介绍
1.1什么是NFS?
NFS(Network File System)网络文件系统,是通过网络来进行服务端与客户端之间的数据传输,仅Linux/Unix系统之间共享文件的一种协议。NFS服务一般用来存储静态数据,例如:脚本、视频、图片等这些不会有太大变化的文件。
特性:
- NFS的客户端为Linux;
- 支持多节点同时挂载,以及并发写入;
1.2客户端与服务端之间的NFS如何进行数据传输?
RPC服务:Remove Procedure call 远程过程调用服务/协议
- 首先服务端会先启动RPC服务,并开放111端口,等待客户端的RPC服务进行连接;
- 其次服务端的NFS再启动,然后向RPC服务注册与客户端NFS连接使用的端口(大于1024),RPC服务会记录这些端口信息;
- 当客户端需要读取服务端NFS的共享目录时,客户端的RPC会连接服务端RPC服务开放的111端口,并向服务端RPC服务发送请求;
- 服务端的RPC会将记录的服务端NFS端口信息反回给客户端的RPC服务;
- 客户端的RPC再将接收到的端口信息给客户端NFS;
- 客户端NFS再通过这些端口信息与服务端NFS进行数据传输;
通信原理图:

查看RPC服务管理的端口
rpcinfo -p IP地址
1.3RPC和NFS的启动顺序
首先,一定是要先启动了RPC服务,后才能启动NFS服务,否则NFS服务无法向RPC服务进行端口注册。请注意,如果RPC服务重新启动了,那么原来记录的NFS服务的端口信息都将全部丢失。因此NFS服务也需要重新启动,再向RPC服务进行端口注册。
特别注意:修改完NFS服务配置文件后,不需要重启NFS服务,直接重新加载配置文件即可systemctl reload nfs-server。
1.4NFS服务 系统守护进程
nfs:它是基本的NFS守护进程,主要功能是管理客户端能否登录服务器;
rpcbind:主要功能是进行端口映射工作。当客户端尝试连接并使用RPC服务器提供的服务(如NFS服务)时,rpcbind会将所管理的服务的对应端口提供给客户端,从而使客户端可以通过该端口连接服务器。
二、安装NFS服务端
2.1安装NFS服务
yum install -y nfs-utils
2.2 创建共享目录
mkdir /webdata chmod o+w /webdata # 赋予其它用户拥有写入权限
2.3创建共享目录首页文件
echo "NFS_test" 1> index.txt
2.4关闭防火墙
systemctl stop firewalld # 关闭防火墙
systemctl disable firewalld # 开机不自启动防火墙
setenforce 0 # 关闭selinux
2.5启动NFS服务
# 在启动NFS服务之前先启动RPC服务
systemctl start rpcbind # 开启RPC服务
systemctl start nfs-server # 开启nfs服务
systemctl reload nfs-server # 重新加载nfs服务配置文件
systemctl restart nfs-server # 重启nfs服务
systemctl stop nfs-server # 关闭nfs服务
systemctl status nfs-server # 查看nfs服务
2.6配置文件的编写格式
NFS服务的配置文件为:/etc/exports
/etc/exports 配置文件的内容格式:
/共享目录 客户端1(访问权限,用户映射,其它) 客户端2(访问权限,用户映射,其它)
a.共享目录:共享目录是指NFS服务器共享给客户端的目录;
b.客户端:客户端是指的网络中可以访问NFS服务器共享目录的主机;
客户端常用指定的方式:
- 指定某一个主机:192.168.1.1;
- 指定子网中所有的主机:192.168.1.0/24;
- 指定域名主机:www.baidu.com;
- 指定域名中的所有主机:*.baidu.com;
- 任何主机都能访问:*;
c.设置共享目录的访问权限:
- 共享目录访问权限为只读:ro;
- 共享目录访问权限为读写:rw;
d.用户映射:
- root_squash:NFS客户端root用户创建的文件/目录所有主、所有组,被服务端映射成匿名用户(nfsnobody);(默认选项)
- no_root_squash:NFS客户端root用户创建的文件/目录所有主、所有组,保留为root用户;
- all_squash:NFS客户端任何用户创建的文件/目录所有主、所有组,被服务端映射成指定的匿名用户;
- anonuid=xxx:映射成服务端指定的所有主;
- anongid=xxx:映射成服务端指定的所有组;
e.其它选项:
工作常用sync(同步传输);

2.7配置NFS服务
vim /etc/export
# 添加以下内容
/webdata 192.168.157.0/24(rw)
注释:
- /webdata 指的是共享的目录
- 192.168.157.0/24 指的是允许访问NFS服务器的客户主机网段
- rw 指的是客户端拥有读写权限
2.8服务端管理NFS相关命令
命令:exportfs
-a:全部挂载或全部卸载 /etc/exports中的内容;
-r:重新挂载/etc/exports中的内容;
-u:取消一个或多个目录的共享;
-v:输出详细信息;
# 卸载所有共享目录
exportfs -au
# 重新挂载所有共享目录
exportfs -ar
# 查看服务器中所有的共享目录信息
exportfs -v
三、安装NFS客户端
3.1安装NFS客户端和httpd服务
yum install -y nfs-utils httpd
3.2关闭防火墙
systemctl stop firewalld # 关闭防火墙
systemctl disable firewalld # 开机不自启动防火墙
setenforce 0 # 关闭selinux
3.3启动服务
# 启动httpd服务
systemctl start httpd
# 启动rpc服务
systemctl start rpcbind
# 启动nfs服务
systemctl start nfs-server
3.4查看NFS服务器共享的目录
showmount -e 服务器IP
-e:查看NFS服务器共享的目录
3.5 将共享目录挂载到客户端目录
mount -t nfs 服务器IP:/共享目录名 /var/www/html

3.6浏览器访问客户端
将共享目录挂载到httpd网站服务的工作目录下 /var/www/html后,在浏览器中访问客户端IP,即可看到共享内容

相关文章:
Linux【实战篇】—— NFS服务搭建与配置
目录 一、介绍 1.1什么是NFS? 1.2客户端与服务端之间的NFS如何进行数据传输? 1.3RPC和NFS的启动顺序 1.4NFS服务 系统守护进程 二、安装NFS服务端 2.1安装NFS服务 2.2 创建共享目录 2.3创建共享目录首页文件 2.4关闭防火墙 2.5启动NFS服务 2.…...
Edge的使用心得与深度探索
Microsoft Edge 是微软推出的一款网页浏览器,基于 Chromium 开源项目开发。从 2020 年开始,Edge 浏览器经历了一次重大更新,采用了与 Google Chrome 相同的浏览器引擎,这使得它在性能、兼容性和扩展支持方面都得到了显著改善。以下…...
逆向案例二十八——红某点集登录接口逆向序
网址:aHR0cHM6Ly93d3cuaHJkanl1bi5jb20vIy9sb2dpbj9yZWRpcmVjdD0lMkZyZWFsVGltZUxpdmluZw 登录接口,发现两个参数加密,分别是pwd和sig,t很明显是时间戳。 观察pwd,发现很像md5加密,我输入的密码是123456,在在线加密网…...
我的创作纪念日20240418
机缘 我的技术博客起源于对编程的深深热爱和对知识的渴望。从一开始,我就被编程世界的无限可能所吸引,而这种热情也推动我开始了技术创作之旅。我创建博客的初衷有以下几点: 分享实战经验:在工作中,我遇到了许多技术…...
计算机视觉入门
计算机视觉是人工智能的一个分支,它涉及研究如何使计算机能够理解和解释图像和视频中的视觉信息。这个领域结合了计算机科学、工程学、神经科学和认知科学等多个学科的知识。以下是计算机视觉入门的一些关键点: 1. 基础概念 - **图像处理**:对…...
CTFHUB-技能树-Web前置技能-文件上传(前端验证—MIME绕过、00截断、00截断-双写后缀)
CTFHUB-技能树-Web前置技能-文件上传(前端验证—MIME绕过、00截断、00截断-双写后缀) 文章目录 CTFHUB-技能树-Web前置技能-文件上传(前端验证—MIME绕过、00截断、00截断-双写后缀)前端验证—MIME绕过有关MIMEMIME的作用 解题时有…...
Java面试题笔记(持续更新)
Java基础 java中的Math.round(-1.5)等于多少? Math的round方法是四舍五入,如果参数是负数,则往大的数如,Math.round(-1.5)-1,如果是Math.round(1.5)则结果为2 JDK和JRE的区别? JDK 是 Java Development ToolKit 的简称,也就是…...
格式化字符串漏洞学习笔记
简单介绍 格式化字符串漏洞和栈溢出有相似之处,但又有所不同,都是利用了程序员的疏忽大意来改变程序运行的正常流程。 1、格式化字符串的介绍 printf()、fprint()等print()系列的函数可以按照一定的格式将数据进行输出。 实例…...
用友NC avatar接口文件上传漏洞
产品简介 用友NC是一款企业级ERP软件。作为一种信息化管理工具,用友NC提供了一系列业务管理模块,包括财务会计、采购管理销售管理、物料管理、生产计划和人力资源管理等,帮助企业实现数字化转型和高效管理。 漏洞介绍 用友 NC avatar接口处…...
【Go语言快速上手(二)】 分支与循环函数讲解
💓博主CSDN主页:杭电码农-NEO💓 ⏩专栏分类:Go语言专栏⏪ 🚚代码仓库:NEO的学习日记🚚 🌹关注我🫵带你学习更多Go语言知识 🔝🔝 Go快速上手 1. 前言2. 分支与循环2.1…...
动手写sql 《牛客网80道sql》
第1章:SQL编写基础逻辑和常见问题 基础逻辑 SELECT语句: 选择数据表中的列。FROM语句: 指定查询将要从哪个表中检索数据。WHERE语句: 过滤条件,用于提取满足特定条件的记录。GROUP BY语句: 对结果进行分组。HAVING语句: 对分组后的结果进行条件过滤。O…...
Node.js、Java、Python、PHP在构建BS系统时的特点比较
在现代软件开发领域,构建一个稳定、高效的B/S(浏览器/服务器)系统对于企业的信息化发展至关重要。Node.js、Java、Python和PHP是当下流行的几种后端开发技术,它们各自具有独特的特点和优势。本文将对这几种技术在构建B/S系统时的特…...
快速入门深度学习9.1(用时20min)——GRU
速通《动手学深度学习》9.1 写在最前面九、现代循环神经网络9.1 门控循环单元(GRU)9.1.1. 门控隐状态9.1.1.1. 重置门和更新门9.1.1.2. 候选隐状态9.1.1.3. 隐状态 9.1.3 API简洁实现小结 🌈你好呀!我是 是Yu欸 🌌 20…...
基于51单片机的步进电机调速系统设计
基于51单片机的步进电机调速系统 (仿真+程序+原理图+设计报告) 功能介绍 具体功能: 1.按键可以控制电机正、反转,加、减速,停止; 2.一位7段数码管实时显示档位…...
postcss概述
PostCSS是一个用于转换CSS的工具,它使用插件来处理CSS,并提供了一种方式来编写可扩展的CSS代码。其主要特点如下: 插件驱动:PostCSS的核心非常轻量级,大部分功能都是通过插件来实现的。这意味着用户可以根据项目的需求…...
【Proteus】51单片机对直流电机的控制
直流电机:输出或输入为直流电能的旋转电机。能实现直流电能和机械能互相转换的电机。把它作电动机运行时是直流电动机,电能转换为机械能;作发电机运行时是直流发电机,机 械能转换为电能。 直流电机的控制: 1、方向控制…...
JET毛选学习笔记:如何利用《实践论》学习实验
一、个人背景介绍 本人本科读的是预防医学专业(因为没考上临床),硕博连读(报名人少,我报了就得了)的时候专业是流行病与卫生统计学,除了学习流行病学、统计学(忘得差不多了…...
FinalShell 远程连接 Linux(Ubuntu)系统
Linux 系列教程: VMware 安装配置 Ubuntu(最新版、超详细)FinalShell 远程连接 Linux(Ubuntu)系统Ubuntu 系统安装 VS Code 并配置 C 环境 ➡️➡️➡️提出一个问题:为什么使用 FinalShell 连接࿰…...
Python零基础从小白打怪升级中~~~~~~~多线程
线程安全和锁 一、全局解释器锁 首先需要明确的一点是GIL并不是Python的特性,它是在实现Python解析器(CPython)时所引入的一个概念。 GIL全称global interpreter lock,全局解释器锁。 每个线程在执行的时候都需要先获取GIL,保证同一时刻只…...
【机器学习300问】67、均方误差与交叉熵误差,两种损失函数的区别?
一、均方误差(Mean Squared Error, MSE) 假设你是一个教练,在指导学生射箭。每次射箭后,你可以测量子弹的落点距离靶心的差距(误差)。MSE就像是计算所以射击误差的平方后的平均值。它强调了每一次偏离靶心的…...
shell脚本--常见案例
1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...
在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module
1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...
Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具
文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...
python如何将word的doc另存为docx
将 DOCX 文件另存为 DOCX 格式(Python 实现) 在 Python 中,你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是,.doc 是旧的 Word 格式,而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...
多模态大语言模型arxiv论文略读(108)
CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题:CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者:Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...
大学生职业发展与就业创业指导教学评价
这里是引用 作为软工2203/2204班的学生,我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要,而您认真负责的教学态度,让课程的每一部分都充满了实用价值。 尤其让我…...
什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...
.Net Framework 4/C# 关键字(非常用,持续更新...)
一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...
Redis:现代应用开发的高效内存数据存储利器
一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发,其初衷是为了满足他自己的一个项目需求,即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源,Redis凭借其简单易用、…...
uniapp 字符包含的相关方法
在uniapp中,如果你想检查一个字符串是否包含另一个子字符串,你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的,但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...
