使用nfs搭建文件共享系统,以及windows环境如何访问linux系统中的文件共享目录

news2024/11/14 17:34:51
31、简介

        在一些场景中,我们需要多台机器进行磁盘文件共享,集群中如果有linux机器,也有windows机器,如何设置进行文件共享,本文将详细说明。

注:本文linux系统使用的是 centos7,windows使用的是 windows11,windows系统是从windows 7 及以后的版本中支持nfs服务的。

2、安装nfs服务
2.1、在linux系统上安装nfs服务(服务端)
yum install -y nfs-utils rpcbind

查看磁盘挂载目录,选择空间较大的目录设置共享目录。

# 新建共享文件夹
mkdir /share

修改共享目录的配置

vim /etc/exports

/share 192.168.0.0/24(rw,sync,no_root_squash,insecure)

# rw 表示允许读写
# ro 表示为只读
# sync 表示同步写入到内存与硬盘中
# no_root_squash表示当客户机以root身份访问时赋予本地root权限(默认是- root_squash),如果不加那么客户端无法在里面编辑或写入文件,因为默认以nfsnobody的权限
# root_squash 表示客户机用root用户访问该共享目录时,将root用户映射成匿名用户
# all_squash 所有访问用户都映射为匿名用户或用户组
# async 将数据先保存在内存缓冲区中,必要时才写入磁盘,速度快但会丢失数据
# subtree_check(默认) 若输出目录是一个子目录,则nfs服务器将检查其父目录的权限
# no_subtree_check 即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率
# insecure必须加,否则会报“无法创建映射网络驱动器 网络错误-53”错误
2.2、客户端安装nfs服务

        安装和在服务端一样,使用 yum 命令安装 nfs-utils rpcbind 两个服务。

2.3、启动nfs服务
systemctl start rpcbind	# 注意先启动rpcbind服务
systemctl start nfs
2.4、管理服务命令
systemctl start/status/stop/restart rpcbind
systemctl start/status/stop/restart nfs

# 设置/关闭开机自启动
systemctl enable/disenable  rpcbind
systemctl enable/disenable   nfs
2.5、客户端查看服务端挂载信息
showmount -e  192.168.0.66 # 服务端地址

        挂载有两种方式:

第一种:命令行挂载(只在客户端配置)(临时挂载)

mount -t nfs 192.168.0.66:/share /share  # 服务端ip:共享目录  本地挂载目录
mount 192.168.0.66:/share /share

umount /share  # umount 本地挂载点
# 注:不要在挂载目录下执行,否则会有 umount.nfs4: /*: device is busy 错误

第二种:使用 /etc/fstab指定(只在客户端配置)(永久挂载)

vim /etc/fstab   
# 添加如下一行
192.168.0.66:/share   /share      nfs defaults        1 1
#第一列是远程共享目录的地址:绝对路径 ;第二列是本地挂载点;第三列是文件类型介绍;;第四列是是否备份;第五列是检查选项(1是,0否)

修改完以上配置后在非挂载目录执行 mount -a 即可。

注:配置完需要重启服务。

要想设置开启自动永久挂载需要开启服务

systemctl start remote-fs.target
systemctl enable remote-fs.target
3、windows安装nfs服务

        按照如下步骤进行安装:打开控制面板 -》 选择程序和功能 -》 启用或关闭windows功能 -》  找到nfs服务全部勾选。

3.1、修改注册表

为了避免验证,在注册表中添加匿名用户的默认UID和GID,在 win + R 运行中输入regedit,打开注册表编辑器, 按照如下顺序检索:\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default,新建AnonymousGig和AnonymousUid,其值都设置为0。修改完成之后,需要重启电脑,注册表才会生效。

3.2、设置共享目录

        双击 计算机 -》右键网络 -》 选择映射网络驱动器

输入 \\服务端ip\共享目录 进行访问(注意格式)。

3.3、windows访问linux共享目录

4、总结

        nfs服务不仅可以在linux集群中进行文件共享,还可以进行跨系统共享,主要是因为nfs是通过网络进行数据传输,只要是安装nfs客户端的机器,都可以访问nfs服务端的共享文件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2068882.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Qt】常见控件 —— QWidget

文章目录 QWidget 的基本介绍QWidget 的 enable 属性QWidget 的 geometry属性 QWidget 的基本介绍 Qt 中 的 各种控件 都继承自 QWidget类 在 Qt designer 右侧 就显示出 QWidget的各种属性 并且也可以直接进行编辑 QWidget 的 enable 属性 enable 描述一个控件是否处于可用 …

前端面试题整理-webpack

实现前端模块化,将多个 js,打包成一个 bundle.js (其他类型文件交由各自的 loader 处理) 1. webpack 了解吗?大概介绍一下 一种打包工具,实现前端模块化,将多个 js,打包成一个 bundle.js (其他类型文件交…

Linux中查看端口被哪个进程占用、进程调用的配置文件、目录,address already in use端口被占用杀死并释放端口

1.查看被占用的端口的进程(netstat和ss是一样的,较新的系统推荐ss): netstat -antulp | grep 端口号ss -antulp | grep :端口号lsof -i | grep 端口号2. 通过上面的命令就可以列出,这个端口被哪些应用程序所占用,然后找…

Java设计模式之策略模式详细讲解和案例示范

Java设计模式之策略模式详细讲解和案例示范 在软件开发中,策略模式是一种常见且非常有用的设计模式。它允许定义一系列算法,将它们一个个封装起来,并且使它们可以互相替换。策略模式让算法可以独立于使用它们的客户端而变化。本篇文章将详细…

VScode的python虚拟环境

1 创建虚拟环境(venv) 在VSCode中打开项目文件夹,键盘按住快捷键ctrl shift p,打开命令面板,输入python:创建环境 选择venv,输入解释器路径,此时左侧文件夹内会出现一个.venv文件夹 2 激活虚拟…

未来已来:探索机器学习如何重塑人工智能的未来方向

引言:机器学习室实现人工智能的关键技术手段,应用领域持续延伸 机器学习是人工智能的一个重要分支,主要研究如何让计算机系统通过数据学习并做出决策或预测,而不需要明确的编程。简单来说,就是让计算机利用经验来提高性…

C# 如何实现接口事件:详解与示例

文章目录 实现接口事件的步骤示例:实现接口事件1. 定义接口事件2. 实现接口事件3. 订阅和触发事件4. 使用示例 总结 在C#中,接口(interface)是一种定义类必须实现的方法和属性的抽象类型。除了方法和属性,接口还可以包…

浅谈红队攻防之道-CobaltStrike钓鱼攻击集锦

打个比方,一片大地上,躺着一群沉睡的人,远处就是火山,马上就要爆发了,你就像个闹钟,面对这些沉睡的人,你想把他们叫醒。 你持续不断地响着,有的睡得浅的人,被你叫醒了&am…

区块链基础通识(1)——分布式系统的共识问题

分布式系统 我们最初了解区块链的时候,很多人会形容这个区块链是一个“分布式的不可篡改账本”,这是一个很形象的说法,但是我认为更为准确的形容是“所有节点共同维护的状态机”。为什么分布式和区块链不能划等号呢? 两种常见的…

Ubuntu 22.04中解决Could not load the Qt platform plugin “xcb“问题解决方法

摘要:在Ubuntu 22.04中安装OpenCV后,遇到“load the Qt platform plugin “xcb” in site-packages/cv2/qt/plugins" even though it was found. 的问题,导致程序无法启动。本文详细探讨了该问题的成因,并介绍了几种常见但无…

在线英语学习小程序App源码开发技术探讨

引言 随着信息技术的飞速发展和全球化进程的加快,英语学习已经成为越来越多人的日常需求。传统的纸质材料和课堂教学已经无法满足现代人灵活、高效的学习需求。因此,开发一款在线英语学习小程序App成为了一个热门话题。本文将从技术角度探讨在线英语学习…

SX_gitlab图形化案例_19

由图形去理解gitlab反而更直观: 圆圈代表着本机代码所在的位置 这就代表着,本机的代码和远程仓库,jhy_gnss的代码是一样的 一个原点代表着一次改动 merge branch ‘jhy_gnss’ of 192.168.91.10:t3000 into jhy_gnss 这条命令是将GitLab服…

Frog4Shell — FritzFrog 僵尸网络将一日攻击纳入其武器库

FritzFrog 的背景 Akamai 通过我们的全球传感器网络持续监控威胁,包括我们之前发现的威胁。其中包括FritzFrog 僵尸网络(最初于 2020 年发现),这是一个基于 Golang 的复杂点对点僵尸网络,经过编译可同时支持基于 AMD 和 ARM 的机器。该恶意软件得到积极维护,多年来通过增…

基于FPGA的ASIC prototype验证

在当今快速发展的电子设计自动化(EDA)领域,专用集成电路(ASIC)的开发因其高性能、低功耗和定制化的特点而备受青睐。然而,ASIC的设计和制造过程不仅成本高昂,而且周期漫长,一旦进入生…

数学建模之数据分析【八】:数据预处理之数据格式化

文章目录 一、在Pandas中格式化数据框的浮点列1.1 将列值四舍五入到两位小数1.2 使用逗号和小数精度的 Pandas DataFrame 格式1.3 在 Pandas DataFrame 中格式化和缩放人口数据 二、如何检查Pandas DataFrame 中的数据类型2.1 创建 DataFrame 检查 DataType2.1.1 创建数据集2.1…

《前端攻城狮 · Vue 使用腾讯地图》

📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗 🌻 CSDN入驻不久,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数…

React18快速入门教程

项目流程 开发流程 技术选型 创建项目 执行命令: pnpm create vite项目配置 editorconfig:用于配置编辑器,实现使用不同的编辑器打开效果是相同的包配置:主要用于配置国内源eslint配置:主要用于配置语法规则prettier&…

leetCode - - - 二分查找

目录 1.二分查找(Leetcode 704) 2.搜索插入位置( LeetCode 35 ) 3.寻找峰值(LeetCode 162) 4.旋转数组的最小数字(BM21) 5.总结 1.二分查找(Leetcode 704&#xff0…

基于Python的机器学习系列(7):多元逻辑回归

在本篇博文中,我们将探讨多元逻辑回归,它是一种扩展的逻辑回归方法,适用于分类数量超过两个的场景。与二元逻辑回归不同,多元逻辑回归使用Softmax函数将多个类别的概率输出映射到[0, 1]范围内,并确保所有类别的概率和为…

利用漏洞实现 Outlook 的 RCE:第一部分

概述 2023 年 3月补丁星期二解决的漏洞中,有一个是Outlook 的一个严重漏洞,编号为CVE-2023-23397,该漏洞被 Forest Blizzard 在野利用,微软已将其确定为俄罗斯国家支持的威胁行为者。2023 年 12 月,微软与波兰网络司令部 (DKWOC) 联合发布消息称,他们发现同一威胁行为者…