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

【服务器知识】如何在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. 常见问题排查

权限问题
  • 确保服务器共享目录的权限允许客户端访问(可通过 chmodchown 调整)。
  • 若客户端无法写入,检查服务器端 /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)协议实现。以下是详细步骤:

一、准备工作

  1. 确认NAS信息

    • NAS的IP地址(如 192.168.1.100
    • 共享路径(如 /share/data//nas-server/share
    • 访问协议(NFS/SMB)
    • 用户名和密码(如果需要认证)
  2. 安装依赖工具

    • 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
      
  3. 创建本地挂载点

    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.0vers=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

四、验证挂载

  1. 查看已挂载的文件系统:
    df -hT
    
  2. 检查挂载点读写权限:
    touch /mnt/nas/testfile && rm /mnt/nas/testfile
    

五、卸载NAS

sudo umount /mnt/nas

六、常见问题

  1. 权限不足

    • 检查NAS共享的权限设置。
    • 在挂载命令中指定uid/gidfile_mode/dir_mode
  2. 协议版本不匹配

    • 对于SMB,尝试指定vers=2.0vers=3.0
  3. 网络不可达

    • 检查NAS的IP和防火墙设置(确保NFS/SMB端口开放)。

通过上述步骤,您可以轻松在Linux系统中挂载NAS存储,并根据需求选择手动或自动挂载方式。

相关文章:

【服务器知识】如何在linux系统上搭建一个nfs

文章目录 NFS网络系统搭建**1. 准备工作****2. 服务器端配置****(1) 安装 NFS 服务****(2) 创建共享目录****(3) 配置共享规则****(4) 生效配置并启动服务****(5) 防火墙配置** **3. 客户端配置****(1) 安装 NFS 客户端工具****(2) 创建本地挂载点****(3) 挂载 NFS 共享目录***…...

图片画质增强:轻松提升画质

前言&#xff1a; 今天给大家推荐一款非常实用的图片画质增强软件&#xff0c;它无需联网即可使用&#xff0c;完全离线操作&#xff0c;这款软件基于先进的深度学习技术&#xff0c;能够对模糊图片进行强大的高清处理&#xff0c;效果令人惊艳。 图片画质增强&#xff1a;一…...

vscode快速接入deepseek 实践操作

背景说明 在deepseek快速火爆的情况下&#xff0c;也想自己体验一把。看看在vscode中集成进来&#xff0c;方便平时的脚本开发。对于年纪大的人还是非常方便的。 操作过程 安装continue 打开vscode进入扩展市场&#xff0c;搜索安装 安装完成就是上面的样子&#xff0c;会…...

mapbox进阶,添加绘图扩展插件,绘制圆形

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象1.2 ☘️mapboxgl.Map style属性1.3 ☘️MapboxDraw 绘图控件二、🍀添加绘图扩…...

Cursor 与多语言开发:全栈开发的利器

引言 全栈开发要求开发者跨越前端、后端、数据库甚至数据科学等多个技术领域&#xff0c;而不同技术栈往往需要切换工具和思维方式。Cursor 作为一款 AI 驱动的智能编程助手&#xff0c;凭借其对 20 编程语言 和主流框架的深度支持&#xff0c;正在成为全栈开发的“瑞士军刀”…...

2025 CCF BDCI|“基于TPU平台的OCR模型性能优化”一等奖作品

2024年12月&#xff0c;中国计算机学会在海南博鳌成功举办了第十二届CCF大数据与计算智能大赛&#xff08;简称2024 CCF BDCI&#xff09;。本届比赛的算能赛道吸引了1748名选手报名&#xff0c;经过激烈角逐&#xff0c;北京航空航天大学的“常务副SOTA”团队脱颖而出&#xf…...

FPGA的IP核接口引脚含义-快解

疑问 手册繁琐&#xff0c;怎样快速了解IP核各输入输出接口引脚的含义。 答疑 不慌不慌&#xff0c;手册确实比较详细但繁琐&#xff0c;如何快速知晓该部分信息&#xff0c;涛tao道长给你们说&#xff0c;简单得很&#xff0c;一般新入门的道友有所不知&#xff0c;往往后面…...

数据库高安全—审计追踪:传统审计统一审计

书接上文数据库高安全—角色权限&#xff1a;权限管理&权限检查&#xff0c;从权限管理和权限检查方面解读了高斯数据库的角色权限&#xff0c;本篇将从传统审计和统一审计两方面对高斯数据库的审计追踪技术进行解读。 4 审计追踪 4.1 传统审计 审计内容的记录方式通…...

机器学习 - 需要了解的条件概率、高斯分布、似然函数

似然函数是连接数据与参数的桥梁&#xff0c;通过“数据反推参数”的逆向思维&#xff0c;成为统计推断的核心工具。理解它的关键在于区分“参数固定时数据的概率”与“数据固定时参数的合理性”&#xff0c;这种视角转换是掌握现代统计学和机器学习的基础。 一、在学习似然函…...

Spring Boot Web 入门

目录 Spring Boot Web 是 Spring Boot 框架的一个重要模块&#xff0c;它简化了基于 Spring 的 Web 应用程序的开发过程。以下是一个 Spring Boot Web 项目的入门指南&#xff0c;涵盖了项目创建、代码编写、运行等关键步骤。 1. 项目创建 使用 Spring Initializr 使用 IDE …...

神经网络|(八)概率论基础知识-二项分布及python仿真

【1】引言 前序已经学习了古典概型、条件概率、全概率公式和贝叶斯公式&#xff0c;它们作为基础&#xff0c;解释了事件发生及其概率的对应关系&#xff0c;相关文章链接为&#xff1a; 神经网络|(四)概率论基础知识-古典概型-CSDN博客 神经网络|(五)概率论基础知识-条件概…...

【面试场景】MySQL分布式主键选取

文章目录 一. MySQL的自增主键二. UUID三. 雪花ID(推荐) 我的博客地址 一. MySQL的自增主键 适合单表的情况, 在分布式分库分表下可能会有一些问题 主键冲突问题 在分布式系统中&#xff0c;多个数据库节点独立生成自增主键&#xff0c;很容易出现重复的主键值。例如&#xff…...

执行git stash drop stash@{x} 时出现error: unknown switch `e‘ 的解决方式

原因: 在 PowerShell 或某些 Shell 中&#xff0c;{} 是特殊符号&#xff0c;stash{0} 会被解析成 stash 0&#xff0c;而 后的字符可能被误认为选项&#xff08;如 -e&#xff09;&#xff0c;使 Git 收到意外的 -e 参数&#xff0c;导致报错 unknown switch ‘e’。 解决方…...

链表和 list

一、单链表的模拟实现 1.实现方式 链表的实现方式分为动态实现和静态实现两种。 动态实现是通过 new 申请结点&#xff0c;然后通过 delete 释放结点的形式构造链表。这种实现方式最能体 现链表的特性&#xff1b; 静态实现是利用两个数组配合来模拟链表。一个表示数据域&am…...

windows 蓝牙驱动开发-传输总线驱动程序常见问题

以下是驱动程序开发人员在开发总线驱动程序以支持蓝牙功能时可能会遇到的一些常见问题和方案。 我的串行总线驱动程序遇到了一些错误。 它意味着什么&#xff1f; 代码 10-49&#xff1a;设备管理器生成的错误代码。 代码 51&#xff1a;当串行总线驱动程序具有相关的控制器…...

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 技术栈开发的宠物上门服务预约平台的设计与实现。该平台集成了丰富的功能模块&#xff0c;为用户提供一体化的便捷服务体验。首先&#xff0c;用户能够通过注册并登录系统&#xff0c;享受个性化的服务流程。在平…...

无线AP之详解(Detailed Explanation of Wireless AP)

无线AP是什么&#xff1f; 市场上的AP基本上分为两大类&#xff1a;单纯型AP和扩展型AP。扩展型AP除了基本的AP功能之外&#xff0c;还可能带有若干以太网交换口、路由、NAT、DHCP、打印服务器等功能。 无线AP也就是一个无线交换机 无线路由器就是一个带路由功能的无线AP&am…...

Spring Boot Actuator与JMX集成实战

在微服务架构中&#xff0c;监控和管理应用的运行状态是至关重要的。Spring Boot Actuator 提供了一种便捷的方式来监控和管理 Spring Boot 应用&#xff0c;而 JMX&#xff08;Java Management Extensions&#xff09;则是一种用于管理 Java 应用的标准技术。本文将通过一个实…...

mac环境下,ollama+deepseek+cherry studio+chatbox本地部署

春节期间&#xff0c;deepseek迅速火爆全网&#xff0c;然后回来上班&#xff0c;我就浅浅的学习一下&#xff0c;然后这里总结一下&#xff0c;我学习中&#xff0c;总结的一些知识点吧&#xff0c;分享给大家。具体的深度安装部署&#xff0c;这里不做赘述&#xff0c;因为网…...

Android AI助手开发实战:基于MVVM与OpenAI API的AnywhereGPT项目解析

1. 项目概述与核心价值最近在折腾移动端AI应用&#xff0c;发现一个挺有意思的开源项目&#xff0c;叫AnywhereGPT-Android。简单来说&#xff0c;它就是一个让你能在Android手机上&#xff0c;通过调用OpenAI的API&#xff08;比如GPT-3.5/4&#xff09;或者本地部署的模型&am…...

如何一键修复Windows系统依赖问题:VisualCppRedist AIO终极解决方案指南

如何一键修复Windows系统依赖问题&#xff1a;VisualCppRedist AIO终极解决方案指南 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过打开游戏或…...

FS8024A芯片实现USB-C PD诱骗:打造TYPE-C转DC电源转接头方案

1. 项目概述&#xff1a;一个“小接口”背后的大世界 最近在折腾一个便携显示器项目&#xff0c;手头有现成的12V驱动板&#xff0c;但供电却成了麻烦事。现在谁还愿意随身带个笨重的12V电源适配器&#xff1f;满世界都是USB-C接口的充电宝和笔记本充电器。于是&#xff0c;一个…...

粒子物理实验中的异构计算与AI技术应用

1. 粒子物理实验的计算挑战与机遇 粒子物理实验正经历前所未有的数据爆炸时代。以大型强子对撞机&#xff08;HL-LHC&#xff09;为例&#xff0c;其升级后的数据采集率将达到每秒数PB级别&#xff0c;这相当于每天产生约1亿张高清照片的数据量。传统基于CPU的串行计算架构已无…...

Arm Ethos-U85 NPU架构解析与边缘AI优化实践

1. Arm Ethos-U85 NPU架构解析&#xff1a;边缘AI的算力引擎在嵌入式AI领域&#xff0c;算力与功耗的平衡始终是核心挑战。Arm Ethos-U85 NPU的诞生&#xff0c;为Cortex-M/A系列处理器提供了专用的神经网络加速方案。这款NPU采用独特的微架构设计&#xff0c;支持TOSA标准指令…...

猫眼启发的亚太赫兹超表面成像系统设计与应用

1. 猫眼启发的亚太赫兹超表面成像系统概述在电磁波成像技术领域&#xff0c;传统系统往往面临视场匹配困难、系统冗余度高以及实时性不足等挑战。受猫眼结构中反光膜&#xff08;tapetum lucidum&#xff09;的生物学启发&#xff0c;我们开发了一种创新的主动-被动复合孔径共享…...

Perplexity搜索响应延迟超800ms?紧急修复手册:从LLM路由策略到本地缓存穿透的5层优化路径

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Perplexity搜索响应延迟超800ms&#xff1f;紧急修复手册&#xff1a;从LLM路由策略到本地缓存穿透的5层优化路径 当Perplexity风格的语义搜索接口P95延迟持续突破800ms&#xff0c;用户会感知明显卡顿…...

GitHub加速神器:5分钟安装,告别龟速下载的终极解决方案

GitHub加速神器&#xff1a;5分钟安装&#xff0c;告别龟速下载的终极解决方案 【免费下载链接】Fast-GitHub 国内Github下载很慢&#xff0c;用上了这个插件后&#xff0c;下载速度嗖嗖嗖的~&#xff01; 项目地址: https://gitcode.com/gh_mirrors/fa/Fast-GitHub 还在…...

揭秘AMD处理器底层控制:Ryzen SDT调试工具从入门到精通

揭秘AMD处理器底层控制&#xff1a;Ryzen SDT调试工具从入门到精通 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://g…...

ArduPilot开源飞控之飞行模式切换逻辑与安全机制

1. ArduPilot飞行模式的核心价值与设计哲学 第一次接触ArduPilot的飞行模式时&#xff0c;我完全被它的设计哲学震撼到了。这个开源飞控系统将复杂的飞行控制抽象成几十种可切换的行为模式&#xff0c;就像给无人机装上了不同性格的大脑。Stabilize模式下飞机会自动保持平衡&am…...