linux网络服务学习(1):nfs

1.什么是nfs

NFS:网络文件系统。

*让客户端通过网络访问服务器磁盘中的数据,是一种在linux系统间磁盘文件共享的方法。

*nfs客户端可以把远端nfs服务器的目录挂载到本地。

*nfs服务器一般用来共享视频、图片等静态数据。一般是作为被读取的对象,不宜频繁写入。

2.NFS挂载原理

*NFS服务传输数据的端口并不像ssh那样是一个固定端口,而是会随机选择端口来进行数据传输,这些随机端口是使用RPC协议进行注册的,客户端也正是通过RPC协议与服务器进行交互。

RPC服务会开启111端口等待客户端请求

*因此要使用NFS,必须先启动RPC,而且RPC服务重启,NFS的连接也会断掉。

修改NFS配置文件后并不需要重启NFS,通过命令:/etc/init.d/nfs reload 即可重启。

*客户端与服务器的通信工程步骤:

(1)服务器启动RPC服务,开启111端口

(2)服务器启动NFS服务,向RPC注册随机端口

(3)客户端启动RPC服务,向服务器的RPC服务请求NFS随机端口号

(4)服务器RPC将NFS服务器随机端口号反馈给客户端

(5)客户端通过获取的随机端口号与服务器建立NFS通信,并传送数据

3.NFS软件包与进程

(1)所需软件包:

nfs-utils-* :包括NFS命令与监控程序的软件包

rpcbind-* :支持NFS PRC连接的软件包

这两个包都是系统默认下载的

(2)进程:

nfs进程、rpcbind进程

4.NFS配置文件

*NFS的配置文件是**/etc/exports**,因为NFS默认是已安装的,所以可以直接在系统内找到该文件,如果没有,可以手动创建一个。

*NFS配置文件是个空文件,需要手动编辑。其格式如下:

共享目录 客户端1(访问权限、用户映射、其他) 客户端2(访问权限、用户映射、其他) ......

括号不能少

客户端的常用指定方式为:

(1)客户端ip

(2)客户端所处的子网ip(如192.168.30.0),指代这一子网中的所有主机

(3)客户端主机域名:www.hhh.com

(4)指定域中所有主机:*.hhh.com

(5)所有主机:*

客户端访问权限:

(1)ro:只读

(2)rw:读写

用户映射

客户端用户对NFS服务器的共享目录进行操作时,需要把客户端用户映射为服务器端用户。几种映射设置如下:

(1)root_squash(默认的):将客户端的root用户映射为服务器端匿名用户(nfsnobody)

(2)no_root_squash:将客户端的root用户映射为服务器端root用户

(3**)**all_squash:将客户端的所有用户映射为服务器端匿名用户(nfsnobody)

(4)将客户端的所有用户映射为服务器端指定uid、gid的用户

anonuid=某uid

anongid=某gid

客户端对共享目录的操作权限除了受到配置文件内的访问权限限制,还会受到目录本身对服务器用户的权限限制(因为客户端用户已经映射为服务器端用户了),所以必要时需要用chmod命令对共享目录的权限进行修改

其他:

(1)sync:将数据同步写入内存缓冲区与磁盘中,效率低但可以保证一致性

(2)async:将数据先保存在内存缓冲区中,必要时再写入磁盘(异步)

5.客户端连接

(1)服务器端启动nfs服务

rpcbind是开机自启的,nfs服务需要手动开启

复制代码
systemctl start nfs
*开启nfs服务

(2)服务器端编辑/etc/exports

复制代码
systemctl reload nfs
*重新加载nfs服务,编辑完配置文件后需要重新加载配置文件

(3)查看NFS共享状态

showmount -e NFS服务器ip

服务器端和客户端都可以用这条命令查看

客户端、服务器端需要关闭防火墙

(4)客户端挂载服务器共享目录

mount NFS服务器ip:共享目录 本地挂载目录

挂载后可以通过df命令查看到挂载的共享目录

lsblk命令看不到

*在客户端完成挂载后,如果服务器端又修改并重新加载了NFS配置文件,客户端也并不需要重新进行挂载,改动会自动同步

(5)卸载挂载与自动挂载

卸载挂载:umount 挂载点

自动挂载:编辑**/etc/fstab**,如下图

相关推荐
茶杯梦轩13 分钟前
从零起步学习RabbitMQ || 第二章:RabbitMQ 深入理解概念 Producer、Consumer、Exchange、Queue 与企业实战案例
服务器·后端·消息队列
Johny_Zhao1 天前
OpenClaw安装部署教程
linux·人工智能·ai·云计算·系统运维·openclaw
YuMiao2 天前
gstatic连接问题导致Google Gemini / Studio页面乱码或图标缺失问题
服务器·网络协议
chlk1233 天前
Linux文件权限完全图解:读懂 ls -l 和 chmod 755 背后的秘密
linux·操作系统
舒一笑3 天前
Ubuntu系统安装CodeX出现问题
linux·后端
改一下配置文件3 天前
Ubuntu24.04安装NVIDIA驱动完整指南(含Secure Boot解决方案)
linux
深紫色的三北六号3 天前
Linux 服务器磁盘扩容与目录迁移:rsync + bind mount 实现服务无感迁移(无需修改配置)
linux·扩容·服务迁移
SudosuBash4 天前
[CS:APP 3e] 关于对 第 12 章 读/写者的一点思考和题解 (作业 12.19,12.20,12.21)
linux·并发·操作系统(os)
哈基咪怎么可能是AI4 天前
为什么我就想要「线性历史 + Signed Commits」GitHub 却把我当猴耍 🤬🎙️
linux·github
十日十行5 天前
Linux和window共享文件夹
linux