32.Linux NFS 服务
文章目录
- Linux NFS 服务
- NFS 介绍
- NFS是什么
- NFS核心功能
- NFS工作原理(简单版)
- NFS 服务配置
- 流程
- 配置服务端
- 准备工作
- 配置服务器
- 配置防火墙
- 配置客户端
- 准备工作
- 连接共享目录
- 持久化挂载
- 测试
Linux NFS 服务
NFS 介绍
存储连接方式:
- 直连,笔记本、台式机
- 通过网络共享,共享文件夹
- 通过网络共享,共享块设备,客户端识别之后,本地会多一块硬盘出来。
linux或unix存储连接: samba(window和linux) NFS(linux之间)
NFS是什么
可以把它想象成计算机界的“网络邻居”或“共享文件夹”,但它是为 Linux/Unix 环境量身定做的,非常高效和稳定。
NFS 是 网络文件系统 的缩写,它是 Linux 和 Unix 系统中最核心、最常用的文件共享服务之一。
NFS核心功能
让一台服务器上的目录,能被网络上的其他计算机直接挂载到本地,像使用本地硬盘一样使用它。
- 服务器端:提供文件目录的那台电脑。
- 客户端:访问并使用那个共享目录的电脑。
NFS工作原理(简单版)
- 共享(服务器端):在服务器上,管理员设定好哪个目录可以被共享,并设置哪些客户端IP地址有权限访问。
- 挂载(客户端):在客户端上,使用一个简单的命令(
mount
),将服务器的共享目录“挂载”到本地的一个空文件夹里。 - 使用:之后,客户端用户就可以通过进入这个本地文件夹,无缝地读写服务器上的文件了,所有操作都在网络上透明进行。
NFS 服务配置
流程
- 安装软件包
- 准备服务用到的各种材料,例如用户、目录等
- 配置服务器(修改配置文件)
- 启用并启动服务
- 配置防火墙
- 客户端测试
配置服务端
准备工作
服务端和客户端安装软件包
服务端server安装NFS
客户端web安装Nginx
[root@server ~ 10:30:11]# yum install -y nfs-utils
[root@web ~ 10:30:23]# yum install -y nginx
准备服务用到的各种材料,例如用户、目录等
[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用户可以读写该目录
[root@web ~ 10:33:17]# id nginx
uid=997(nginx) gid=995(nginx) 组=995(nginx)
客户端nginx用户的UID为997,修改权限
[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只读共享
[root@server ~ 10:36:31]# vim /etc/exports.d/webapp.exports # 修改内容为
/shares/webapp 10.1.8.0/24(rw)
启用并启动服务
[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
配置防火墙
设置防火墙未关闭状态,我们这里已经是关闭状态
[root@server ~ 10:38:50]# systemctl is-active firewalld.service
unknown
# 若未关闭,可是已使用这条命令
# systemctl stop firewalld.service
配置客户端
准备工作
安装NFS
[root@web ~ 10:44:46]# yum install -y nfs-utils
连接共享目录
查看共享并挂载
showmount
:专门用于查询NFS服务器状态的工具
-e
:显示服务器导出的目录列表
[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
持久化挂载
[root@web ~ 11:06:47]# vim /etc/fstab
# 最后添加记录
10.1.8.10:/shares/webapp /usr/share/nginx/html nfs defaults 0 0
注意这里的文件系统类型为nfs
测试
测试web服务器页面
[root@server ~ 10:48:01]# curl 10.1.8.11
Hello World From Nginx
重启web服务器并验证
[root@server ~ 10:48:11]# reboot
挂载选项补充说明:
客户端的root对于服务器端来说 啥也不是。
默认情况,服务端共享的目录,客户端的root是只具备other用户的权限。
默认共享选项包含root_squash,压缩root权限为nobody。
可以使用选项no_root_squash