CentOS7.9环境上NFS搭建及使用

news2024/9/21 1:07:07

Linux环境NFS搭建及使用

  • 1. 服务器规划
  • 2. NFS服务器配置
    • 2.1 主机名设置
    • 2.2 nfs安装
      • 2.2.1 repo文件替换
      • 2.2.2 NFS服务安装
    • 2.3 nfs配置
    • 2.4 服务查看
    • 2.5 资源发布
    • 2.6 配置nfs服务开机自启
    • 2.7 端口开放
  • 3.应用服务器配置
    • 3.1 主机名设置
    • 3.2 nfs安装
      • 3.2.1 repo文件替换
      • 3.2.2 NFS服务安装
    • 3.3 挂载配置及测试
      • 3.3.1 创建挂载目录
      • 3.3.2 测试挂载
      • 3.3.3 读写测试
      • 3.3.4 配置开机自动挂载
      • 3.3.5 配置开机自启动rpcbind服务
      • 3.3.6 重启应用服务器测试
  • 4.其他

1. 服务器规划

IP主机名用途
172.16.32.3file_serverNFS服务器(文件服务器)
172.16.32.4app_server应用服务器(挂载文件服务器目录)

实例为将172.16.32.3服务器上的/data挂载到172.16.32.4的/data1目录上

2. NFS服务器配置

2.1 主机名设置

hostnamectl set-hostname file_server && bash
// 设置主机名,并在当前会话中生效

在这里插入图片描述

2.2 nfs安装

2.2.1 repo文件替换

wget https://mirrors.aliyun.com/repo/Centos-7.repo -O /etc/yum.repos.d/CentOS-Base.repo
// CentOS自带yum源不可用,故直接从网络下载阿里云repo配置文件覆盖默认配置文件

# 清理缓存
yum clean all && yum makecache

在这里插入图片描述
附:CentOS-Base.repo配置文件全部内容

[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/os/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
 
#released updates 
[updates]
name=CentOS-$releasever - Updates - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/updates/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
 
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/extras/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
 
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/centosplus/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
 
#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/contrib/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/contrib/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

2.2.2 NFS服务安装

yum install -y nfs-utils

2.3 nfs配置

  1. 创建共享目录
mkdir /data

在这里插入图片描述
2. 配置共享/data目录

cat >> /etc/exports<<'EOF'
/data 172.16.32.4(sync,rw,no_root_squash)
EOF
// 配置本机/data目录允许172.16.32.4服务器进行连接

以下是一些常用的NFS共享参数:
sync:数据同步写入到内存与磁盘中,保证数据不会在发生断电时丢失,提高了数据的安全性。
rw:表示NFS文件系统可以进行读写操作。
ro:表示NFS文件系统只能进行读操作。
no_root_squash:客户机以root用户访问该共享目录时,它所拥有的权限为该服务器本地的root用户权限,可以对该目录进行读写操作,这会带来一定的安全隐患。
root_squash:客户机以root用户访问该共享目录时,它的权限会变成nfsnobody用户(一般没有权限),只能对该目录进行读操作。
all_squash:不管使用NFS的客户机的用户身份为何,他的身份都会变成nfsnobody。
anonuid/anongid:可以将访问NFS的用户身份映射成指定的用户。

在这里插入图片描述

2.4 服务查看

systemctl status rpcbind.service
systemctl status nfs.service
# 查看状态,如果没有启动,则需要使用下述命令启动对应服务
# 演示环境nfs服务未启动,故需要手动启动nfs服务
systemctl start rpcbind.service
systemctl start nfs.service
ps -ef|grep nfs

在这里插入图片描述

2.5 资源发布

exportfs -rv

在这里插入图片描述

2.6 配置nfs服务开机自启

systemctl enable rpcbind.service
systemctl enable nfs-server.service

2.7 端口开放

方案1:直接关闭防火墙

systemctl stop firewalld

方案2:放行NFS指定端口

# 查看防火墙放行端口
firewall-cmd --zone=public --list-ports
# 若不放行任何端口,在showmount时,报错:clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)

# 配置端口放行
firewall-cmd --permanent --zone=public --add-port=2049/tcp
firewall-cmd --permanent --zone=public --add-port=2049/udp
firewall-cmd --permanent --zone=public --add-port=111/tcp
firewall-cmd --permanent --zone=public --add-port=111/udp
# 重新加载防火墙策略
firewall-cmd --reload
# 只放行2049和111端口后,在其他服务器上showmount报错:rpc mount export: RPC: Unable to receive; errno = No route to host

# 除此之外,还需要放行rpc.mountd对应的端口(查看命令:netstat -lntp)
firewall-cmd --permanent --zone=public --add-port=20048/tcp
firewall-cmd --permanent --zone=public --add-port=20048/udp
firewall-cmd --reload

在这里插入图片描述

3.应用服务器配置

3.1 主机名设置

hostnamectl set-hostname app_server && bash
// 设置主机名,并在当前会话中生效

在这里插入图片描述

3.2 nfs安装

3.2.1 repo文件替换

wget https://mirrors.aliyun.com/repo/Centos-7.repo -O /etc/yum.repos.d/CentOS-Base.repo
// CentOS自带yum源不可用,故直接从网络下载阿里云repo配置文件覆盖默认配置文件

# 清理缓存
yum clean all && yum makecache

在这里插入图片描述

3.2.2 NFS服务安装

yum install -y nfs-utils

3.3 挂载配置及测试

3.3.1 创建挂载目录

mkdir /data1

3.3.2 测试挂载

showmount -e 172.16.32.3
mount -t nfs -o sync,noac 172.16.32.3:/data /data1
查看:df -Th

在这里插入图片描述

3.3.3 读写测试

cd /data/
touch 111.txt

在这里插入图片描述
应用服务器删除,文件服务器查看

rm -rf /data1/111.txt

在这里插入图片描述

3.3.4 配置开机自动挂载

echo '172.16.32.3:/data /data1 nfs sync,noac,_netdev 0 0' >> /etc/fstab

测试fstab配置文件挂载是否异常:mount -a

在这里插入图片描述

3.3.5 配置开机自启动rpcbind服务

systemctl enable rpcbind.service

3.3.6 重启应用服务器测试

reboot

在这里插入图片描述

4.其他

showmount漏洞–在其他服务器上,使用showmount也可以打印出NFS(文件)服务器配置的共享目录信息
修复方法:

[root@file_server data]# systemctl list-unit-files | grep rpcbind
rpcbind.service                               enabled 
rpcbind.socket                                enabled 
rpcbind.target                                static  

[root@file_server data]# echo 'rpcbind:ALL:deny' >> /etc/hosts.deny
[root@file_server data]# cat /etc/hosts.deny | grep -v "#" | grep -v "^$"
rpcbind:ALL:deny

[root@file_server data]# cat /etc/hosts.allow | grep -v "#" | grep -v "^$"
[root@file_server data]# echo 'rpcbind:172.16.32.4:allow' >> /etc/hosts.allow
[root@file_server data]# echo 'rpcbind:localhost:allow' >> /etc/hosts.allow

[root@file_server data]# cat /etc/hosts.allow | grep -v "#" | grep -v "^$"
rpcbind:172.16.32.4:allow
rpcbind:localhost:allow

[root@file_server data]# service sshd restart
Redirecting to /bin/systemctl restart sshd.service

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2146979.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue学习记录之五(组件/生命周期)

一、组件 在每一个.vue文件可以看作是一个组件&#xff0c;组件是可以复用的&#xff0c;每个应用可以看作是一棵嵌套的组件树。 在Vue3中&#xff0c;组件导入以后即可直接使用。 二、组件的生命周期 生命周期就是从诞生(创建)到死亡(销毁) 的过程。 Vue3 组合式API中(se…

Java中的事务管理

1.1 事务管理 1.1 事务回顾 事务是一组操作的集合&#xff0c;它是一个不可分割的工作单位。事务会把所有的操作作为一个整体&#xff0c;一起向数据库提交或者是撤销操作请求。所以这组操作要么同时成功&#xff0c;要么同时失败。 怎么样来控制这组操作&#xff0c;让这组操…

力扣最热一百题——合并两个有序链表

目录 题目链接&#xff1a;21. 合并两个有序链表 - 力扣&#xff08;LeetCode&#xff09; 题目描述 示例 提示&#xff1a; 解法一&#xff1a;比大小放入 Java写法&#xff1a; 运行时间以及复杂度 C写法&#xff1a; 运行时间以及复杂度 总结 题目链接&#xff1a…

Qt/C++事件过滤器与控件响应重写的使用、场景的不同

在Qt/C中&#xff0c;事件过滤器和控件响应重写是两种用于捕获和处理鼠标、键盘等事件的机制&#xff0c;它们的用途和使用场景不同&#xff0c;各有优劣。下面详细介绍它们的区别、各自适用的场景、以及混合使用的场景和注意事项。 1. 事件过滤器&#xff08;Event Filter&…

JavaScript 可选链操作符:深度解读与实战应用( JS 可选链操作符)

前言 在JavaScript开发中&#xff0c;我们经常会遇到访问嵌套对象属性的需求。然而&#xff0c;处理深层嵌套对象时&#xff0c;属性可能为 undefined 或 null&#xff0c;直接访问这些属性时会抛出错误。为了解决这种问题&#xff0c;JavaScript在ES2020中引入了一项新特性—…

104.游戏安全项目-基址的技术原理-基址的本质

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a;易道云信息技术研究院 本人写的内容纯属胡编乱造&#xff0c;全都是合成造假&#xff0c;仅仅只是为了娱乐&#xff0c;请不要盲目相信…

【初阶数据结构】一文讲清楚 “堆” 和 “堆排序” -- 树和二叉树(二)(内含TOP-K问题)

文章目录 前言1. 堆1.1 堆的概念1.2 堆的分类 2. 堆的实现2.1 堆的结构体设置2.2 堆的初始化2.3 堆的销毁2.4 添加数据到堆2.4.1 "向上调整"算法 2.5 从堆中删除数据2.5.1 “向下调整”算法 2.6 堆的其它各种方法接口函数 3. 堆排序3.1 堆排序的代码实现 4. TOP-K问题…

主机和Docker容器之间的文件互传方法汇总

Docker渐渐成为前端的一个工具&#xff0c;它像一个通用包装&#xff0c;可以把各种环境包裹其中&#xff0c;从而实现跨设备的兼容。使用的过程中&#xff0c;往往会需要将本地的文件和docker容器内部的文件互传&#xff1a;将主机的文件传递给容器内&#xff0c;让里面的工具…

【LLM大模型】如何让大模型更好地进行场景落地?

自ChatGPT模型问世后&#xff0c;在全球范围内掀起了AI新浪潮。 有很多企业和高校也随之开源了一些效果优异的大模型&#xff0c;例如&#xff1a;Qwen系列模型、MiniCPM序列模型、Yi系列模型、ChatGLM系列模型、Llama系列模型、Baichuan系列模型、Deepseek系列模型、Moss模型…

sqli-lab靶场学习(二)——Less8-10(盲注、时间盲注)

Less8 第八关依然是先看一般状态 http://localhost/sqli-labs/Less-8/?id1 然后用单引号闭合&#xff1a; http://localhost/sqli-labs/Less-8/?id1 这关的问题在于报错是不显示&#xff0c;那没办法通过上篇文章的updatexml大法处理。对于这种情况&#xff0c;需要用“盲…

从 InnoDB 到 Memory:MySQL 存储引擎的多样性

&#x1f4c3;个人主页&#xff1a;island1314 &#x1f525;个人专栏&#xff1a;MySQL学习 ⛺️ 欢迎关注&#xff1a;&#x1f44d;点赞 &#x1f442;&#x1f3fd;留言 &#x1f60d;收藏 &#x1f49e; &#x1f49e; &#x1f49e; &#x1f680;前言 &#x1f525…

PSINS,GNSS速度与SINS滤波的MATLAB代码

文章目录 程序说明主要特点适用范围获取方式运行截图 程序说明 基于PSINS工具箱的GNSS和SINS滤波的MATLAB代码&#xff0c;观测量为GNSS的三轴速度。 专为工程师和研究人员设计&#xff0c;助您轻松实现高精度的导航和定位。 主要特点 高精度滤波算法&#xff1a;结合PSINS和…

内存dump文件分析

目录 dumpsneak攻击步骤&#xff1a; dump 打开Volatility工具目录&#xff0c;C:\Users\Administrator\Desktop\应急工具集\volatility 打开运行输入volatility.exe -f 文件 imageinfo&#xff08;花费比较长的时间&#xff0c;对于这个mem文件&#xff0c;可以使用Win2012…

【C++初阶】vector模拟实现

✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅ ✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨ &#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1…

什么是全国特价电影票api?接口如何对接?

一、全国特价电影票接口对接的基本情况 接口包含信息&#xff1a;电影票API接口中包含影院、影厅、座位、影片、场次、日期及票价等信息。市场需求背景&#xff1a;随着我国电影消费市场的火爆&#xff0c;观影人数增多&#xff0c;除了猫眼、淘票票等平台&#xff0c;各大平台…

SLA 概念和计算方法

SLA 概念和计算方法 SLA SLA&#xff1a;服务等级协议&#xff08;简称&#xff1a;SLA&#xff0c;全称&#xff1a;service level agreement&#xff09; 网站服务可用性的一个保证 9越多代表全年服务可用时间越长服务更可靠&#xff0c;停机时间越短&#xff0c;反之亦然…

简单题66-加一(Python)20240918

问题描述&#xff1a; python class Solution(object):def plusOne(self, digits):""":type digits: List[int]:rtype: List[int]"""n len(digits)# 从最后一位开始处理进位for i in range(n - 1, -1, -1):if digits[i] < 9:digits[i] 1re…

xmos 编程指南

并行执行 并行执行时使用par {} 进行并行处理 点灯 #include <stdio.h> #include<xs1.h> #include<timer.h> #include<platform.h>port p XS1_PORT_8C;void hw(unsigned n) { printf("Hello world from task number %u\n", n); } int ma…

多线程---线程的状态及常用方法

1. 线程的状态 在Java程序中&#xff0c;一个线程对象通过调用start()方法启动线程&#xff0c;并且在线程获取CPU时&#xff0c;自动执行run()方法。run()方法执行完毕&#xff0c;代表线程的生命周期结束。 在整个线程的生命周期中&#xff0c;线程的状态有以下六种&#xff…

文件翻译英文是什么软件?5款软件评测助你决策

在企业的日常运营中&#xff0c;文件翻译格式的多样性常常成为沟通效率的瓶颈。 从简单的文本文件到复杂的PDF文档&#xff0c;每一种格式都可能因为其特有的结构和布局&#xff0c;给翻译工作带来额外的挑战。 掌握翻译技巧需要时间和实践&#xff0c;以下是一些实用的翻译技…