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

相关推荐
Kina_C4 分钟前
LVS-NAT 负载均衡实验从环境搭建到规则持久化
linux·运维·服务器·负载均衡·lvs
小肝一下17 分钟前
7. 库制作与原理
linux·c语言·操作系统·bash·shell·动静态库
Android洋芋27 分钟前
PrintFriendly网页文章转PDF插件工具及技术分析
运维·服务器·pdf·网页转pdf
春生野草31 分钟前
C基础--八大排序(个人笔记)
c语言·笔记·排序算法
Elastic 中国社区官方博客32 分钟前
使用重新设计的 AutoOps 更快地进行 Elasticsearch 问题排查
大数据·运维·前端·人工智能·elasticsearch·搜索引擎·全文检索
RoboWizard44 分钟前
金士顿高速闪存盘 单双接口适配多元存储需求
大数据·运维·人工智能·智能手机·云计算
2601_964702891 小时前
Claude Opus 5 API 开发实战:对话、文本生成与结构化输出
java·服务器·前端
聚焦前沿1 小时前
水动力优化导流罩:原理、数据与实船验证
大数据·服务器·数据库·人工智能
hkj88081 小时前
Ubuntu 20.04 安装 OpenJDK 17
linux·运维·ubuntu
huainingning1 小时前
防火墙重启后ssl登录提示证书过期临时解决方法
linux·服务器·ssl