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

文件共享服务NFS(服务名nfs,端口tcp/2049)

目录

前言

配置文件

工作原理

NFS服务器的配置

查看服务器是否安装

查看服务器状态

开启服务

编写配置文件

客户端挂载



前言

NFS(Network File System)是一种分布式文件系统协议,它允许网络中的不同计算机共享文件和目录,就像它们是本地存储的一部分一样。主要用于UNIX/Linux系统之间的文件共享。


配置文件

/etc/exports


工作原理

NFS的工作原理基于客户端-服务器架构。服务器端配置并启动相关服务进程,通过/etc/exports文件定义哪些目录可以被哪些客户端以哪种权限访问。客户端访问服务器端的共享资源时,会通过Portmapper(或rpcbind)服务查询到NFS服务器所监听的实际端口,并向这些端口发送挂载请求。一旦服务器验证并批准该请求,客户端就可以将远端的共享目录挂载到本机的一个指定路径下。这时,访问服务端的共享文件,就如同访问本地文件一样。


NFS服务器的配置

查看服务器是否安装

rpm -qa | grep nfs

查看服务器状态

systemctl status nfs

开启服务

systemctl start nfs

编写配置文件

vim /etc/exports

配置文件打开后,需要自己添加配置

格式为:共享目录或文件的路径   客户端IP/IP段  (选项)

下表为一些基本的选项和说明

访问权限ro只读访问权限
rw读写访问权限
数据同步sync

数据同步写入到内存与硬盘中

async数据先暂存于内存当中,而非直接写入硬盘
用户映射root_squash将客户端的 root 用户映射为匿名用户 nfsnobody
no_root_squash保留客户端root用户的权限
all_squash将所有用户映射为匿名用户
anonuid设定匿名用户的UID
anongid设定匿名用户的GID
安全设置secure限制客户端仅能通过小于1024的TCP/IP端口连接
insecure允许客户端从大于1024的端口连接
写入延迟wdelay默认设置,归组写入,提高效率
no_wdelay立即写入,应与 async 配合使用
子目录检查subtree_check如果共享子目录,则检查父目录权限(默认)
no_subtree_check不检查父目录权限,提高性能
子目录共享hide不共享子目录
no_hide共享子目录

比如:服务端想要共享给客户端的目录为home目录下的files目录

那么服务端配置文件应该根据具体情况添加类似如下的语句:

#任意IP的客户端都可以以只读的形式访问/home/files:
/home/files *(ro)#只允许IP为192.168.100.88的客户机访问/home/filws:
/home/files 192.168.100.88(rw)#允许192.168.100.0这个网段的用户以读写从形式访问/home/files并且不限制用户身份:
/home/files 192.168.100.0/24(rw,all_squash)#只允许uid和gid都为900且在192.168.100.0这个网段的用户以读写形式访问/home/files:
/home/files 192.168.100.0/24(rw,anonuid=900,anongid=900)

具体怎么配置,根据实际需求来,总之,结构都一样:目录或文件   ip(选项)

这里我们演示允许192.168.100.0网段的用户已读写的方式访问/home/files

/home/files 192.168.100.0/24(rw)

编辑好配置文件后,需要配置防火墙允许nfs开启服务,然后重启防火墙,重启nfs服务,还可以看一下nfs状态(如果配置文件出错了,重启nfs并不会报错,但nfs状态可能会标红,影响nfs连接)

firewall-cmd --add-service=nfs --zone=public --permanent
setenforce 0
systemctl restart firewalld
systemctl restart nfs
systemctl status nfs

客户端挂载

这里的挂载,只是一种映射,并不是实际的挂载到了客户端下面

来到客户端,将服务端/home/files目录挂载到自己新建的一个目录:

mkdir /home/guazai
mount -t nfs 192.168.100.2:/home/files ./guazai

值得注意的是NFS共享文件的最终访问权限取决于服务器端配置的共享权限和文件本身的权限。



相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Codeforces 874 div3 A-G
  • pytorch setattr vs. add_module区别
  • 【日常记录-MySQL】MySQL设置root用户密码
  • 英语文化中的音乐分类及其发展历史(Classical、Jazz、Rock、Pop、Electronic、Country、RB、Hip-Hop)
  • 虚拟dom-Diff算法
  • 通过docker-compose 部署misskey 服务器
  • 开发输出防护栏以检测GPT-4o幻觉
  • 基于springboot3实现单点登录(二):认证服务端搭建
  • 【递归】什么是递归-C语言为例
  • Linux安全与高级应用(九)Linux远程访问与控制:安全与最佳实践
  • 通过python管理mysql
  • 【Qt中2D绘图的类有哪些】
  • 【面试之算法篇】寻找二叉树中两个节点的最低公共祖先
  • JSON 提取器:从文本中提取 JSON 内容的实用工具
  • Android系统Android.bp文件详解
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • 【跃迁之路】【444天】程序员高效学习方法论探索系列(实验阶段201-2018.04.25)...
  • css属性的继承、初识值、计算值、当前值、应用值
  • GitUp, 你不可错过的秀外慧中的git工具
  • gulp 教程
  • leetcode-27. Remove Element
  • sessionStorage和localStorage
  • windows下如何用phpstorm同步测试服务器
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • 后端_ThinkPHP5
  • 开发基于以太坊智能合约的DApp
  • 快速构建spring-cloud+sleuth+rabbit+ zipkin+es+kibana+grafana日志跟踪平台
  • 实战|智能家居行业移动应用性能分析
  • 微信开放平台全网发布【失败】的几点排查方法
  • 微信小程序--------语音识别(前端自己也能玩)
  • 学习Vue.js的五个小例子
  • 树莓派用上kodexplorer也能玩成私有网盘
  • ​ubuntu下安装kvm虚拟机
  • ​VRRP 虚拟路由冗余协议(华为)
  • # Spring Cloud Alibaba Nacos_配置中心与服务发现(四)
  • #Linux(make工具和makefile文件以及makefile语法)
  • #VERDI# 关于如何查看FSM状态机的方法
  • #Z0458. 树的中心2
  • #大学#套接字
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (day 12)JavaScript学习笔记(数组3)
  • (NO.00004)iOS实现打砖块游戏(九):游戏中小球与反弹棒的碰撞
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (十一)手动添加用户和文件的特殊权限
  • (一)Linux+Windows下安装ffmpeg
  • (一)基于IDEA的JAVA基础10
  • (译)2019年前端性能优化清单 — 下篇
  • .NET 2.0中新增的一些TryGet,TryParse等方法
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • .net SqlSugarHelper
  • .net 桌面开发 运行一阵子就自动关闭_聊城旋转门家用价格大约是多少,全自动旋转门,期待合作...
  • @test注解_Spring 自定义注解你了解过吗?