当前位置: 首页 > article >正文

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

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.kler.cn/news/315312.html

相关文章:

  • linux-系统备份与恢复-系统恢复
  • 云硬盘EVS详细解析和配置使用方法
  • 【在Linux世界中追寻伟大的One Piece】IP分片和组装的具体过程
  • Qt5详细安装教程(包含导入pycharm)
  • LangChain4j支持的API类型
  • Linux中使用cp命令的 -f 选项,但还是提醒覆盖的问题
  • 828华为云征文|云服务器Flexus X实例|MacOS系统-宝塔部署Nuxt项目
  • 【C#生态园】从基础到深度学习:探索C#机器学习库
  • EclipseRCP开发(三)-如何去除顽固原生菜单项
  • 递归手撕,JSON 字符串化和解析,加权树结构的字符串解析对象,解析并返回DOM 树结构(DOMParser),解析带有层级的文本
  • 51单片机-LCD1602(液晶显示屏)- 写驱动
  • 数据结构-树(基础,分类,遍历)
  • JAVA基础:System类,Runtime类,Arrays类的常用方法,二分查找算法
  • C++竞赛初阶L1-16-第七单元-字符串(36~37课)559: T456513 统计数字字符个数
  • 基于Redis实现幂等判断
  • 异步请求的方法以及原理
  • MyBatis动态SQL中的`if`标签使用【后端 19】
  • C++ 条件变量:wait、wait_for、wait_until
  • 【开源大模型生态9】百度的文心大模型
  • 主播和礼品检测系统源码分享
  • 高速下载大模型文件
  • 【读点论文】Text Recognition in the Wild: A Survey 非常纯粹的OCR研究,专业细致,脉络清晰
  • Datawhale X 南瓜书 task01学习笔记
  • Vue3(一) Vite创建Vue3工程,选项式API与组合式API;setup的使用;Vue中的响应式ref,reactive
  • c语言练习题1(数组和循环)
  • python发送邮件 - email smtplib
  • vue2项目实现国际化(若依框架示例)
  • c语言习题
  • JS领域的AI工程利器分享
  • Spring Cloud Gateway组件