【服务器知识】如何在linux系统上搭建一个nfs
文章目录
- NFS网络系统搭建
- **1. 准备工作**
- **2. 服务器端配置**
- **(1) 安装 NFS 服务**
- **(2) 创建共享目录**
- **(3) 配置共享规则**
- **(4) 生效配置并启动服务**
- **(5) 防火墙配置**
- **3. 客户端配置**
- **(1) 安装 NFS 客户端工具**
- **(2) 创建本地挂载点**
- **(3) 挂载 NFS 共享目录**
- **(4) 验证挂载**
- **(5) 设置开机自动挂载**
- **4. 常见问题排查**
- **权限问题**
- **防火墙或网络问题**
- **挂载失败**
- **5. 安全建议**
- NAS挂载
- **一、准备工作**
- **二、手动挂载NAS**
- **方法1:挂载NFS共享**
- **方法2:挂载SMB/CIFS共享**
- **三、自动挂载(开机自动挂载)**
- **NFS自动挂载**
- **SMB/CIFS自动挂载**
- **四、验证挂载**
- **五、卸载NAS**
- **六、常见问题**
NFS网络系统搭建
在 Linux 系统上搭建 NFS(Network File System)的详细步骤如下:
1. 准备工作
- 服务器端:提供共享目录的机器。
- 客户端:访问共享目录的机器。
- 网络互通:确保服务器和客户端在同一个网络,防火墙允许 NFS 相关流量(默认使用 TCP/UDP 2049 端口)。
2. 服务器端配置
(1) 安装 NFS 服务
根据 Linux 发行版选择安装命令:
-
Ubuntu/Debian:
sudo apt update sudo apt install nfs-kernel-server -
CentOS/RHEL:
sudo yum install nfs-utils
(2) 创建共享目录
选择一个目录作为共享存储(例如 /data/nfs_share):
sudo mkdir -p /data/nfs_share
sudo chown nobody:nogroup /data/nfs_share # 设置权限(根据需求调整)
(3) 配置共享规则
编辑 NFS 配置文件 /etc/exports:
sudo nano /etc/exports
添加以下内容(示例允许所有客户端读写):
/data/nfs_share *(rw,sync,no_subtree_check,no_root_squash)
- 参数说明:
rw:允许读写。sync:同步写入,保证数据一致性。no_subtree_check:禁用子目录检查(提高性能)。no_root_squash:允许客户端 root 用户保留权限(谨慎使用)。
(4) 生效配置并启动服务
sudo exportfs -a # 应用所有 exports 配置
sudo systemctl start nfs-server # Ubuntu/Debian
sudo systemctl start nfs # CentOS/RHEL
sudo systemctl enable nfs-server # 设置开机自启
(5) 防火墙配置
开放 NFS 相关端口(以 firewalld 为例):
sudo firewall-cmd --permanent --add-service=nfs
sudo firewall-cmd --permanent --add-service=mountd
sudo firewall-cmd --permanent --add-service=rpc-bind
sudo firewall-cmd --reload
3. 客户端配置
(1) 安装 NFS 客户端工具
-
Ubuntu/Debian:
sudo apt install nfs-common -
CentOS/RHEL:
sudo yum install nfs-utils
(2) 创建本地挂载点
sudo mkdir -p /mnt/nfs_client
(3) 挂载 NFS 共享目录
sudo mount -t nfs 服务器IP:/data/nfs_share /mnt/nfs_client
(4) 验证挂载
检查挂载是否成功:
df -h | grep nfs
或写入测试文件:
echo "NFS Test" > /mnt/nfs_client/test.txt
(5) 设置开机自动挂载
编辑 /etc/fstab 文件:
sudo nano /etc/fstab
添加以下行:
服务器IP:/data/nfs_share /mnt/nfs_client nfs defaults 0 0
4. 常见问题排查
权限问题
- 确保服务器共享目录的权限允许客户端访问(可通过
chmod或chown调整)。 - 若客户端无法写入,检查服务器端
/etc/exports是否设置了rw。
防火墙或网络问题
- 使用
rpcinfo -p 服务器IP检查 NFS 服务是否正常。 - 在服务器端执行
showmount -e查看共享目录是否可见。
挂载失败
- 检查 NFS 服务状态:
systemctl status nfs-server。 - 查看日志:
tail -f /var/log/messages(CentOS)或/var/log/syslog(Ubuntu)。
5. 安全建议
- 限制客户端范围:在
/etc/exports中指定具体 IP 或网段(如192.168.1.0/24)。 - 避免使用
no_root_squash:防止客户端 root 用户拥有服务器 root 权限。 - 启用 NFSv4:在
/etc/nfs.conf中设置vers4.2(性能更好且更安全)。
通过以上步骤,你可以在 Linux 系统上快速搭建并配置 NFS 共享服务。
NAS挂载
在Linux系统中挂载NAS(网络附加存储)通常可以通过NFS(Network File System)或SMB/CIFS(Server Message Block/Common Internet File System)协议实现。以下是详细步骤:
一、准备工作
-
确认NAS信息:
- NAS的IP地址(如
192.168.1.100) - 共享路径(如
/share/data或//nas-server/share) - 访问协议(NFS/SMB)
- 用户名和密码(如果需要认证)
- NAS的IP地址(如
-
安装依赖工具:
- NFS:确保已安装NFS客户端工具:
sudo apt install nfs-common # Debian/Ubuntu sudo dnf install nfs-utils # Fedora/CentOS/RHEL - SMB/CIFS:安装
cifs-utils:sudo apt install cifs-utils # Debian/Ubuntu sudo dnf install cifs-utils # Fedora/CentOS/RHEL
- NFS:确保已安装NFS客户端工具:
-
创建本地挂载点:
sudo mkdir -p /mnt/nas
二、手动挂载NAS
方法1:挂载NFS共享
sudo mount -t nfs <NAS_IP>:/<共享路径> /mnt/nas
示例:
sudo mount -t nfs 192.168.1.100:/share/data /mnt/nas
方法2:挂载SMB/CIFS共享
sudo mount -t cifs -o username=<用户名>,password=<密码> //<NAS_IP>/<共享名> /mnt/nas
示例:
sudo mount -t cifs -o username=user1,password=pass123 //192.168.1.100/myshare /mnt/nas
常用选项:
vers=3.0:指定SMB协议版本(如vers=2.0或vers=3.0)。uid=1000:设置挂载后文件的用户所有者。gid=1000:设置挂载后文件的组所有者。file_mode=0777:设置文件权限。dir_mode=0777:设置目录权限。
三、自动挂载(开机自动挂载)
编辑 /etc/fstab 文件,添加挂载配置:
NFS自动挂载
sudo nano /etc/fstab
添加行:
<NAS_IP>:/<共享路径> /mnt/nas nfs defaults,_netdev 0 0
SMB/CIFS自动挂载
//<NAS_IP>/<共享名> /mnt/nas cifs username=<用户名>,password=<密码>,vers=3.0,_netdev 0 0
说明:
_netdev:确保挂载在网络就绪后进行。- 若需隐藏密码,可将凭据保存到文件(如
/etc/smb.creds),并在fstab中使用credentials=/etc/smb.creds。
四、验证挂载
- 查看已挂载的文件系统:
df -hT - 检查挂载点读写权限:
touch /mnt/nas/testfile && rm /mnt/nas/testfile
五、卸载NAS
sudo umount /mnt/nas
六、常见问题
-
权限不足:
- 检查NAS共享的权限设置。
- 在挂载命令中指定
uid/gid或file_mode/dir_mode。
-
协议版本不匹配:
- 对于SMB,尝试指定
vers=2.0或vers=3.0。
- 对于SMB,尝试指定
-
网络不可达:
- 检查NAS的IP和防火墙设置(确保NFS/SMB端口开放)。
通过上述步骤,您可以轻松在Linux系统中挂载NAS存储,并根据需求选择手动或自动挂载方式。
相关文章:
【服务器知识】如何在linux系统上搭建一个nfs
文章目录 NFS网络系统搭建**1. 准备工作****2. 服务器端配置****(1) 安装 NFS 服务****(2) 创建共享目录****(3) 配置共享规则****(4) 生效配置并启动服务****(5) 防火墙配置** **3. 客户端配置****(1) 安装 NFS 客户端工具****(2) 创建本地挂载点****(3) 挂载 NFS 共享目录***…...
图片画质增强:轻松提升画质
前言: 今天给大家推荐一款非常实用的图片画质增强软件,它无需联网即可使用,完全离线操作,这款软件基于先进的深度学习技术,能够对模糊图片进行强大的高清处理,效果令人惊艳。 图片画质增强:一…...
vscode快速接入deepseek 实践操作
背景说明 在deepseek快速火爆的情况下,也想自己体验一把。看看在vscode中集成进来,方便平时的脚本开发。对于年纪大的人还是非常方便的。 操作过程 安装continue 打开vscode进入扩展市场,搜索安装 安装完成就是上面的样子,会…...
mapbox进阶,添加绘图扩展插件,绘制圆形
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象1.2 ☘️mapboxgl.Map style属性1.3 ☘️MapboxDraw 绘图控件二、🍀添加绘图扩…...
Cursor 与多语言开发:全栈开发的利器
引言 全栈开发要求开发者跨越前端、后端、数据库甚至数据科学等多个技术领域,而不同技术栈往往需要切换工具和思维方式。Cursor 作为一款 AI 驱动的智能编程助手,凭借其对 20 编程语言 和主流框架的深度支持,正在成为全栈开发的“瑞士军刀”…...
2025 CCF BDCI|“基于TPU平台的OCR模型性能优化”一等奖作品
2024年12月,中国计算机学会在海南博鳌成功举办了第十二届CCF大数据与计算智能大赛(简称2024 CCF BDCI)。本届比赛的算能赛道吸引了1748名选手报名,经过激烈角逐,北京航空航天大学的“常务副SOTA”团队脱颖而出…...
FPGA的IP核接口引脚含义-快解
疑问 手册繁琐,怎样快速了解IP核各输入输出接口引脚的含义。 答疑 不慌不慌,手册确实比较详细但繁琐,如何快速知晓该部分信息,涛tao道长给你们说,简单得很,一般新入门的道友有所不知,往往后面…...
数据库高安全—审计追踪:传统审计统一审计
书接上文数据库高安全—角色权限:权限管理&权限检查,从权限管理和权限检查方面解读了高斯数据库的角色权限,本篇将从传统审计和统一审计两方面对高斯数据库的审计追踪技术进行解读。 4 审计追踪 4.1 传统审计 审计内容的记录方式通…...
机器学习 - 需要了解的条件概率、高斯分布、似然函数
似然函数是连接数据与参数的桥梁,通过“数据反推参数”的逆向思维,成为统计推断的核心工具。理解它的关键在于区分“参数固定时数据的概率”与“数据固定时参数的合理性”,这种视角转换是掌握现代统计学和机器学习的基础。 一、在学习似然函…...
Spring Boot Web 入门
目录 Spring Boot Web 是 Spring Boot 框架的一个重要模块,它简化了基于 Spring 的 Web 应用程序的开发过程。以下是一个 Spring Boot Web 项目的入门指南,涵盖了项目创建、代码编写、运行等关键步骤。 1. 项目创建 使用 Spring Initializr 使用 IDE …...
神经网络|(八)概率论基础知识-二项分布及python仿真
【1】引言 前序已经学习了古典概型、条件概率、全概率公式和贝叶斯公式,它们作为基础,解释了事件发生及其概率的对应关系,相关文章链接为: 神经网络|(四)概率论基础知识-古典概型-CSDN博客 神经网络|(五)概率论基础知识-条件概…...
【面试场景】MySQL分布式主键选取
文章目录 一. MySQL的自增主键二. UUID三. 雪花ID(推荐) 我的博客地址 一. MySQL的自增主键 适合单表的情况, 在分布式分库分表下可能会有一些问题 主键冲突问题 在分布式系统中,多个数据库节点独立生成自增主键,很容易出现重复的主键值。例如ÿ…...
执行git stash drop stash@{x} 时出现error: unknown switch `e‘ 的解决方式
原因: 在 PowerShell 或某些 Shell 中,{} 是特殊符号,stash{0} 会被解析成 stash 0,而 后的字符可能被误认为选项(如 -e),使 Git 收到意外的 -e 参数,导致报错 unknown switch ‘e’。 解决方…...
链表和 list
一、单链表的模拟实现 1.实现方式 链表的实现方式分为动态实现和静态实现两种。 动态实现是通过 new 申请结点,然后通过 delete 释放结点的形式构造链表。这种实现方式最能体 现链表的特性; 静态实现是利用两个数组配合来模拟链表。一个表示数据域&am…...
windows 蓝牙驱动开发-传输总线驱动程序常见问题
以下是驱动程序开发人员在开发总线驱动程序以支持蓝牙功能时可能会遇到的一些常见问题和方案。 我的串行总线驱动程序遇到了一些错误。 它意味着什么? 代码 10-49:设备管理器生成的错误代码。 代码 51:当串行总线驱动程序具有相关的控制器…...
Qt修仙之路2-1 炼丹初成
widget.cpp #include "widget.h" #include<QDebug> //实现槽函数 void Widget::login1() {QString userusername_input->text();QString passpassword_input->text();//如果不勾选无法登入if(!check->isChecked()){qDebug()<<"xxx"&…...
【含开题报告+文档+PPT+源码】基于SpringBoot+Vue宠物预约上门服务预约平台
开题报告 本研究论文旨在构建并阐述一个基于 SpringBoot 和 Vue 技术栈开发的宠物上门服务预约平台的设计与实现。该平台集成了丰富的功能模块,为用户提供一体化的便捷服务体验。首先,用户能够通过注册并登录系统,享受个性化的服务流程。在平…...
无线AP之详解(Detailed Explanation of Wireless AP)
无线AP是什么? 市场上的AP基本上分为两大类:单纯型AP和扩展型AP。扩展型AP除了基本的AP功能之外,还可能带有若干以太网交换口、路由、NAT、DHCP、打印服务器等功能。 无线AP也就是一个无线交换机 无线路由器就是一个带路由功能的无线AP&am…...
Spring Boot Actuator与JMX集成实战
在微服务架构中,监控和管理应用的运行状态是至关重要的。Spring Boot Actuator 提供了一种便捷的方式来监控和管理 Spring Boot 应用,而 JMX(Java Management Extensions)则是一种用于管理 Java 应用的标准技术。本文将通过一个实…...
mac环境下,ollama+deepseek+cherry studio+chatbox本地部署
春节期间,deepseek迅速火爆全网,然后回来上班,我就浅浅的学习一下,然后这里总结一下,我学习中,总结的一些知识点吧,分享给大家。具体的深度安装部署,这里不做赘述,因为网…...
SpringBoot-17-MyBatis动态SQL标签之常用标签
文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...
AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...
渲染学进阶内容——模型
最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...
在WSL2的Ubuntu镜像中安装Docker
Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包: for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...
Linux --进程控制
本文从以下五个方面来初步认识进程控制: 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程,创建出来的进程就是子进程,原来的进程为父进程。…...
使用 SymPy 进行向量和矩阵的高级操作
在科学计算和工程领域,向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能,能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作,并通过具体…...
深度学习习题2
1.如果增加神经网络的宽度,精确度会增加到一个特定阈值后,便开始降低。造成这一现象的可能原因是什么? A、即使增加卷积核的数量,只有少部分的核会被用作预测 B、当卷积核数量增加时,神经网络的预测能力会降低 C、当卷…...
技术栈RabbitMq的介绍和使用
目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...
IP如何挑?2025年海外专线IP如何购买?
你花了时间和预算买了IP,结果IP质量不佳,项目效率低下不说,还可能带来莫名的网络问题,是不是太闹心了?尤其是在面对海外专线IP时,到底怎么才能买到适合自己的呢?所以,挑IP绝对是个技…...
