32.Linux NFS 服务

文章目录

Linux NFS 服务

NFS 介绍

存储连接方式:

  1. 直连,笔记本、台式机
  2. 通过网络共享,共享文件夹
  3. 通过网络共享,共享块设备,客户端识别之后,本地会多一块硬盘出来。

linux或unix存储连接: samba(window和linux) NFS(linux之间)

NFS是什么

可以把它想象成计算机界的"网络邻居"或"共享文件夹",但它是为 Linux/Unix 环境量身定做的,非常高效和稳定。

NFS 是 网络文件系统 的缩写,它是 Linux 和 Unix 系统中最核心、最常用的文件共享服务之一。

NFS核心功能

让一台服务器上的目录,能被网络上的其他计算机直接挂载到本地,像使用本地硬盘一样使用它。

  • 服务器端:提供文件目录的那台电脑。
  • 客户端:访问并使用那个共享目录的电脑。

NFS工作原理(简单版)

  1. 共享(服务器端):在服务器上,管理员设定好哪个目录可以被共享,并设置哪些客户端IP地址有权限访问。
  2. 挂载(客户端) :在客户端上,使用一个简单的命令(mount),将服务器的共享目录"挂载"到本地的一个空文件夹里。
  3. 使用:之后,客户端用户就可以通过进入这个本地文件夹,无缝地读写服务器上的文件了,所有操作都在网络上透明进行。

NFS 服务配置

流程

  1. 安装软件包
  2. 准备服务用到的各种材料,例如用户、目录等
  3. 配置服务器(修改配置文件)
  4. 启用并启动服务
  5. 配置防火墙
  6. 客户端测试

配置服务端

准备工作

服务端和客户端安装软件包

服务端server安装NFS

客户端web安装Nginx

bash 复制代码
[root@server ~ 10:30:11]# yum install -y nfs-utils
bash 复制代码
[root@web ~ 10:30:23]# yum install -y nginx

准备服务用到的各种材料,例如用户、目录等

bash 复制代码
[root@server ~ 10:32:24]# mkdir -p /shares/webapp
[root@server ~ 10:32:59]# echo Hello World From Nginx > /shares/webapp/index.html

查看客户端nginx用户的UID,设置权限,客户端nginx用户可以读写该目录

bash 复制代码
[root@web ~ 10:33:17]# id nginx
uid=997(nginx) gid=995(nginx) 组=995(nginx)

客户端nginx用户的UID为997,修改权限

bash 复制代码
[root@server ~ 10:33:36]# chown 997 /shares/webapp
[root@server ~ 10:35:00]# ll -d /shares/webapp/
drwxr-xr-x 2 997 root 24 9月  26 10:33 /shares/webapp/
配置服务器

修改配置文件,配置文件位置 /etc/exports /etc/exports.d/*.exports

配置共享格式:

共享目录 客户端1(共享选项1) 客户端2(共享选项2)

  • 共享目录:需要共享的目录

  • 客户端:可以是单个主机,例如10.1.8.11,也可以是网段10.1.8.0/24,还可以是主机名*.hxl.cloud

  • 共享选项:控制共享方式,例如,rw读写共享,ro只读共享

bash 复制代码
[root@server ~ 10:36:31]# vim /etc/exports.d/webapp.exports 

# 修改内容为
/shares/webapp 10.1.8.0/24(rw)

启用并启动服务

bash 复制代码
[root@server ~ 10:38:13]# systemctl enable nfs-server.service  --now
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
[root@server ~ 10:38:28]# systemctl is-active nfs-server.service  
active
配置防火墙

设置防火墙未关闭状态,我们这里已经是关闭状态

bash 复制代码
[root@server ~ 10:38:50]# systemctl is-active firewalld.service 
unknown
# 若未关闭,可是已使用这条命令
# systemctl stop firewalld.service 

配置客户端

准备工作

安装NFS

bash 复制代码
[root@web ~ 10:44:46]# yum install -y nfs-utils
连接共享目录

查看共享并挂载

showmount:专门用于查询NFS服务器状态的工具

-e:显示服务器导出的目录列表

bash 复制代码
[root@web ~ 10:46:11]# showmount -e 10.1.8.10
Export list for 10.1.8.10:
/shares/webapp 10.1.8.0/24

[root@web ~ 10:46:26]# mount 10.1.8.10:/shares/webapp /usr/share/nginx/html

[root@web ~ 10:47:22]# df -h /usr/share/nginx/html
文件系统                  容量  已用  可用 已用% 挂载点
10.1.8.10:/shares/webapp   50G  1.6G   49G    4% /usr/share/nginx/html
持久化挂载
bash 复制代码
[root@web ~ 11:06:47]# vim /etc/fstab
# 最后添加记录
10.1.8.10:/shares/webapp /usr/share/nginx/html nfs defaults        0 0

注意这里的文件系统类型为nfs

测试

测试web服务器页面

bash 复制代码
[root@server ~ 10:48:01]# curl 10.1.8.11
Hello World From Nginx

重启web服务器并验证

bash 复制代码
[root@server ~ 10:48:11]# reboot

挂载选项补充说明:

客户端的root对于服务器端来说 啥也不是。

默认情况,服务端共享的目录,客户端的root是只具备other用户的权限。

默认共享选项包含root_squash,压缩root权限为nobody。

可以使用选项no_root_squash

相关推荐
NobitaLab2 小时前
vpp开启nat,分片包丢包问题分析与解决
linux
Ting-yu2 小时前
零基础学Docker(5)--容器数据卷
运维·docker·容器
oh,huoyuyan2 小时前
选型指南 | 2025年业务流程自动化(rpa)软件排名Top5
运维·自动化·rpa
伊织code2 小时前
N8N Workflow Collection - 专业级自动化工作流库
运维·自动化·工作流·n8n
Java-云海2 小时前
使用Python实现自动编写Word全自动化系统
运维·python·自动化·word
geilip2 小时前
知识体系_分布式内存计算框架_spark
笔记
埃伊蟹黄面3 小时前
Linux基础开发工具 --- vim
linux·运维·服务器
love530love3 小时前
Windows 系统部署 阿里团队开源的先进大规模视频生成模型 Wan2.2 教程——基于 EPGF 架构
运维·人工智能·windows·python·架构·开源·大模型
key_Go3 小时前
07.容器监控
运维·网络·网络协议·docker·监控