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

nfs介绍与使用

网络文件系统(NFS)是一种分布式文件系统协议,它允许用户通过网络访问远程服务器上的文件,就像操作本地文件一样。这项由 Sun 公司在 1984 年开发的技术,至今仍在 Linux、UNIX 乃至 Windows 环境中被广泛用于文件共享。

基本原理

  • C/S 架构:服务器(Server)“导出”(Export)目录;客户端(Client)“挂载”(Mount)该目录。
  • 依赖 RPC:NFS 本身不负责数据传输,而是基于 RPC(远程过程调用) 协议实现跨主机通信。
    • NFSv3:依赖 rpcbind(端口 111)动态分配端口。
    • NFSv4:简化为固定 TCP 2049 端口,无需 rpcbind,更易穿越防火墙。

如何使用 NFS?

下面以 CentOS/RHEL 系统为例,演示如何快速搭建一个 NFS 服务。

1. 服务端配置

  1. 安装 NFS 服务软件包
    在选定的服务器上执行以下命令:

    sudo yum install -y nfs-utils rpcbind
    
  2. 创建共享目录
    创建一个用于共享的目录,并设置相应权限。

    sudo mkdir -p /data/nfs
    sudo chmod 755 /data/nfs
    
  3. 配置共享规则
    编辑 /etc/exports 文件,定义哪些客户端可以访问以及访问权限。

    sudo vim /etc/exports
    

    添加如下一行,表示允许 10.0.0.0/24 网段的所有客户端对 /data/nfs 目录进行读写操作:

    /data/nfs 10.0.0.0/24(rw,sync,no_root_squash)
    
    • rw: 读写权限。
    • sync: 同步写入,保证数据一致性。
    • no_root_squash: 允许客户端的 root 用户拥有服务端对应目录的 root 权限(生产环境请谨慎使用)。
  4. 启动并启用服务
    启动 NFS 和 rpcbind 服务,并设置为开机自启。

    sudo systemctl start rpcbind
    sudo systemctl start nfs-server
    sudo systemctl enable rpcbind
    sudo systemctl enable nfs-server
    
  5. 验证配置
    使用 showmount 命令检查共享目录是否已成功导出。

    [root@nfs network-scripts]#showmount -e localhost
    Export list for localhost:
    /data/nfs 10.0.0.0/24

2. 客户端配置

  1. 安装 NFS 客户端工具
    在所有需要访问共享的客户端上执行:

    sudo yum install -y nfs-utils
    
  2. 查看可用共享
    查询 NFS 服务器上有哪些共享目录。

    # 将 server_ip 替换为 NFS 服务器的实际 IP[root@worker232 ~]#showmount -e 10.0.0.31
    Export list for 10.0.0.31:
    /data/nfs 10.0.0.0/24
  3. 挂载共享目录
    创建一个本地目录作为挂载点,然后将远程共享挂载到该点。

    sudo mkdir -p /mnt/nfs
    # 将 server_ip 替换为 NFS 服务器的实际 IP
    sudo mount -t nfs 10.0.0.31:/data/nfs /mnt/nfs
    

    挂载成功后,在 /mnt/nfs 目录下的所有操作都会直接反映在服务端的 /data/nfs 目录中。

  4. 设置开机自动挂载 (可选)
    为了实现开机自动挂载,需要编辑 /etc/fstab 文件。

    sudo vim /etc/fstab
    

    在文件末尾添加一行:

    10.0.0.31:/data/nfs /mnt/nfs nfs defaults,_netdev 0 0
    
    • _netdev 参数非常关键,它告诉系统这是一个网络设备,需要等待网络就绪后再尝试挂载,避免开机时因网络未启动而卡住。

  1. 测试验证

    [root@worker233 nginx-test]#mount | grep nfs
    10.0.0.31:/data/nfs on /mnt/nfs type nfs4 (rw,relatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.0.0.233,local_lock=none,addr=10.0.0.31)[root@worker233 nginx-test]#df -h | grep nfs
    10.0.0.31:/data/nfs   18G  1.6G   16G    9% /mnt/nfs
  2. 验证读写权限

    创建测试文件:尝试在挂载点目录下创建一个新文件。

    touch /mnt/nfs/test_file.txt
    

    写入数据:尝试向文件中写入一些内容。

    echo "NFS test successful" > /mnt/nfs/test_file.txt
    

    检查文件:在其他客户端查看文件是否存在以及内容是否正确。

    cat /mnt/nfs/test_file.txt
    

安全性管理

  • 访问控制:通过服务端的 /etc/exports 文件,可以精确限制允许访问的客户端 IP 地址或网段,以及其读写权限。
  • 用户身份映射:NFS 通过用户 ID (UID) 和组 ID (GID) 来管理文件权限。为确保权限正确,客户端和服务端最好保持相同的用户和组 ID。root_squash 选项(与 no_root_squash 相对)可以将客户端的 root 用户映射为服务端的匿名用户(通常是 nobody),这是一种重要的安全措施。
  • 网络防火墙:务必在服务器上配置防火墙,只允许受信任的 IP 地址访问 NFS 服务端口(NFSv4 主要使用 TCP 2049 端口),以抵御网络攻击。
http://www.jsqmd.com/news/581482/

相关文章:

  • 新手零压力上手:用快马ai学习ubuntu24.04基础操作与配置
  • 如何确保Kando在Windows上的安全性?完整代码签名验证指南
  • 保温钢管怎么选?2026年优质厂家推荐清单,螺旋管/防腐钢管/焊接钢管/TPEP防腐钢管,保温钢管直销厂家找哪家 - 品牌推荐师
  • 2026年陕西做智慧食堂会员管理公司排名,哪家口碑好 - myqiye
  • TaskingAI Docker部署终极指南:5分钟快速搭建AI应用开发平台
  • 如何实现八大网盘直链下载:终极解决方案指南
  • 提升中文编辑效率:notepad--本土化配置指南
  • 高效批量下载B站视频:BilibiliDown智能工具全攻略
  • 快马平台助力Nodejs后端服务快速原型验证,十分钟搭建可运行API
  • 2025 年 7 个压箱底 VS Code 插件,都是神器!
  • 西安智慧食堂管理综合服务,好用的公司有哪些? - mypinpai
  • 构建私有化ChatGPT:基于Nanbeige 4.1-3B与内网穿透的安全对话系统
  • 5步实现文档自动化下载:让kill-doc提升你的文档获取效率
  • RMBG-2.0开源镜像免配置教程:24GB显卡5分钟跑通透明背景生成
  • Z-Image Atelier 高可用部署架构设计:基于内网穿透的本地开发与测试
  • 百度网盘秒传工具:跨平台文件极速分享解决方案
  • 扫描仪哪个牌子比较好?选型避坑与推荐 - 工业三维扫描仪评测
  • 开源工具解决华硕笔记本性能配置难题:效率提升解决方案
  • 公司代办注册公司流程是怎样,壹隆注册公司性价比高不 - 工业推荐榜
  • 2025届学术党必备的五大降AI率神器推荐榜单
  • Kando数据持久化终极指南:如何完美保存和同步菜单配置
  • 开源阅读鸿蒙版:5分钟打造你的个性化数字图书馆
  • 谷歌时隔一年发布“更加开源“的 Gemma 4,意图何为?
  • Windows 相关设置
  • 终极指南:Supercookie自定义路由生成与用户向量计算的深度优化技巧
  • 深入Muon:完整的JavaScript到Go互操作指南
  • 探讨迅腾厨房设备在云贵川藏新的口碑,值得选购吗? - 工业设备
  • MPC(模型预测控制 Model Predictive Control)
  • Windows用户的Parquet文件查看终极指南:告别复杂命令行,5分钟搞定大数据分析
  • InceptionTime:解决时间序列分类难题的智能多尺度神经网络方案