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

在 ​CentOS 7​ 的 Linux 系统中配置 ​NFS

在 ​CentOS 7​ 的 Linux 系统中配置 ​NFS(Network File System,网络文件系统)服务器,可以实现 ​多台 Linux 主机之间共享目录,类似于 Windows 的共享文件夹,但基于 UNIX/Linux 权限体系,常用于局域网内服务器之间数据共享(如 Web 服务、代码、配置文件等)。


一、NFS 服务简介

  • NFS(Network File System)​​:由 Sun Microsystems 开发,允许一台计算机(NFS 服务器)通过网络将目录共享给其他计算机(NFS 客户端),客户端可以像访问本地文件一样访问这些共享目录。

  • 主要用途​:服务器之间共享数据(如网站文件、备份、配置文件等)。

  • 特点​:

    • 基于 RPC(远程过程调用)

    • 适用于 ​Linux/Unix 环境

    • 支持访问控制、用户映射(通过 UID/GID)

    • 支持同步/异步写入


二、NFS 服务器配置步骤(CentOS 7)

1. 安装 NFS 服务相关软件包

NFS 服务端需要两个主要组件:

  • nfs-utils​:NFS 服务主程序

  • rpcbind​(或 portmap):RPC 服务,用于端口映射

sudo yum install nfs-utils rpcbind -y

2. 启动并设置开机自启

sudo systemctl start rpcbind
sudo systemctl enable rpcbindsudo systemctl start nfs-server
sudo systemctl enable nfs-server

在 CentOS 7 中,NFS 服务由 nfs-server管理,不是 nfs

3. 检查服务状态

sudo systemctl status rpcbind
sudo systemctl status nfs-server

三、配置 NFS 共享目录

1. 创建要共享的目录

sudo mkdir -p /data/nfs_share
sudo chmod 777 /data/nfs_share    # 临时宽松权限,仅用于测试,生产环境请按需设置
sudo chown nobody:nobody /data/nfs_share  # 或指定特定用户

生产环境中建议根据实际用户设置权限,如 chown apache:apache(如果是 web 共享)。


2. 编辑 NFS 主配置文件

配置文件路径:/etc/exports

sudo vi /etc/exports
添加共享目录及访问控制规则,例如:
/data/nfs_share  192.168.1.0/24(rw,sync,no_root_squash,no_all_squash)

或更严格的访问控制:

/data/nfs_share  192.168.1.10(rw,sync,no_subtree_check)    # 仅允许 192.168.1.10 读写
/data/nfs_share  192.168.1.0/24(ro)                         # 允许整个网段只读

3. ​NFS 访问控制选项详解

/etc/exports中,每行格式为:

共享目录路径  客户端地址(选项1,选项2,...)
常用客户端地址格式:
  • 单个 IP:192.168.1.10

  • 网段:192.168.1.0/24192.168.1.*

  • 所有主机:*(不推荐)

  • 主机名:nfsclient.example.com(需能解析)

常用选项说明:

选项

说明

rw

Read & Write,可读写

ro

Read Only,只读

sync

同步写入磁盘,更安全(推荐)

async

异步写入,速度快但不安全

no_root_squash

允许 root 用户保持 root 权限​(慎用,有安全风险)

root_squash

将 root 用户映射为匿名用户(nobody)​​(默认,更安全)

no_all_squash

不将所有用户映射为匿名用户

all_squash

所有用户(包括 root)都映射为匿名用户(nobody)​

anonuid=xxx

指定匿名用户的 UID

anongid=xxx

指定匿名用户的 GID

no_subtree_check

不检查子目录权限,提高性能,推荐

subtree_check

检查子目录,更严格(默认,可能影响性能)


4. 使配置生效

每次修改 /etc/exports后,需要重新加载 NFS 配置:

sudo exportfs -ra

该命令会重新导出所有共享目录,使新配置生效。

你也可以查看当前已共享的目录:

sudo exportfs -v

或查看允许访问的客户端:

showmount -e localhost

四、防火墙配置(放行 NFS 相关端口)

NFS 使用多个端口,包括:

  • 2049 (nfs)​​:主 NFS 服务端口

  • 111 (rpcbind / portmapper)​​:RPC 端口,用于服务发现

  • 其它动态端口(用于 NFSv3 数据传输,较复杂)

推荐使用 ​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

或者直接放行端口:

sudo firewall-cmd --permanent --add-port=2049/tcp
sudo firewall-cmd --permanent --add-port=2049/udp
sudo firewall-cmd --permanent --add-port=111/tcp
sudo firewall-cmd --permanent --add-port=111/udp
sudo firewall-cmd --reload

五、NFS 客户端配置(挂载 NFS 共享目录)

1. 安装 NFS 客户端工具

sudo yum install nfs-utils -y

2. 查看服务端共享目录

在客户端机器上执行:

showmount -e 192.168.1.100

192.168.1.100替换为你的 NFS 服务器 IP,会列出该服务器共享了哪些目录。


3. 手动挂载 NFS 共享目录

sudo mkdir -p /mnt/nfs_client
sudo mount -t nfs 192.168.1.100:/data/nfs_share /mnt/nfs_client
  • -t nfs:指定文件系统类型为 NFS

  • 192.168.1.100:/data/nfs_share:服务器 IP + 共享目录

  • /mnt/nfs_client:客户端挂载点

测试是否成功:

df -h
ls /mnt/nfs_client

4. ​客户端自动挂载(开机自动挂载,使用 /etc/fstab)​

编辑 /etc/fstab文件:

sudo vi /etc/fstab

添加一行:

192.168.1.100:/data/nfs_share  /mnt/nfs_client  nfs  defaults  0  0

说明:

  • 第一列:NFS 服务器地址与共享目录

  • 第二列:本地挂载点

  • 第三列:文件系统类型:nfs

  • 第四列:挂载选项:常用 defaults(包含 rw,suid,dev,exec,auto,nouser,async)

  • 第五、六列:dump 和 fsck 选项,通常为 0 0

保存后,测试挂载:

sudo mount -a

如果没有报错,说明配置正确,重启后会自动挂载。


六、NFS 访问控制最佳实践总结

控制维度

推荐配置

说明

共享目录权限

chmod/ chown设置合理权限

避免 777,按需分配用户/组

exports 访问控制

指定 IP 或网段,如 192.168.1.0/24

避免使用 *,限制可访问客户端

读写权限

rw(读写)、ro(只读)

按需分配,一般只读更安全

用户映射

root_squash(默认,推荐)、no_root_squash(慎用)

避免客户端 root 直接获得服务器 root 权限

同步写入

sync(推荐)、async(高性能但危险)

生产环境推荐 sync

子目录检查

no_subtree_check(推荐)

提升性能,一般无害

防火墙

放行 2049/tcp, 111/tcp 等

必须配置,否则客户端无法连接


七、总结:NFS 服务配置流程一览

步骤

操作

说明

1

安装软件

yum install nfs-utils rpcbind

2

启动服务

systemctl start rpcbind nfs-server

3

创建共享目录

mkdir /data/nfs_share

4

配置共享

编辑 /etc/exports,设置访问 IP 和权限选项

5

使配置生效

exportfs -ra

6

配置防火墙

放行 2049, 111 端口或相关服务

7

客户端挂载

mount -t nfs server:/path /mntpoint

8

客户端自动挂载

编辑 /etc/fstab实现开机自动挂载


八、补充:查看 NFS 相关命令

命令

作用

showmount -e 服务器IP

查看 NFS 服务器共享了哪些目录

showmount -a

查看当前主机挂载了哪些 NFS 共享

exportfs -v

查看本机已导出的 NFS 目录及选项

exportfs -ra

重新加载 /etc/exports 配置

rpcinfo -p

查看 RPC 服务注册情况


✅ 总结一句话

在 ​CentOS 7​ 上配置 ​NFS 服务器,通过编辑 /etc/exports设置共享目录及 ​访问控制选项(IP限制、读写权限、用户映射等)​,使用 rpcbindnfs-server服务,并通过 ​防火墙放行端口​ 和 ​客户端 /etc/fstab 自动挂载,即可实现高效安全的文件共享服务。


http://www.dtcms.com/a/561563.html

相关文章:

  • 网站欣赏网站整合营销传播成功案例
  • 深圳高端网站设计建设网站推广百度优化
  • React Native 项目实战指南
  • 百度品牌网站建设优化大师如何删掉多余的学生
  • 做平面设计的一般浏览什么网站wordpress自定义文章顺序
  • 打造推理模型的4种方法——李宏毅2025大模型课程第7讲
  • 金融行业客服系统中合规高效的身份验证流程分享
  • 网站服务器怎么维护濮阳网站建设在哪里
  • 四川省住房和城乡建设厅网站官网西安做网站缑阳建
  • linux——有关权限的话题。——权限掩码——默认文件权限的理解/文件共享、粘滞位
  • 【经典书籍】《人月神话》第四章“贵族专制、民主政治和系统”精华讲解
  • 南京高端网站定制保定自助建站软件
  • hysAnalyser --- 支持UDP实时流分析和录制功能
  • 葫芦岛做网站的公司微信公众平台导航 wordpress模版
  • 【Linux笔记】网络部分——网络层IP协议
  • 用织梦做的网站怎么上传虚拟网站新建设请示
  • GEE统计特定区域特定时间上的Landsat/Sentinel的影像信息
  • 徐州建设企业网站苏州网站优化排名推广
  • 百度提交网站的入口地址网络地区广告代理
  • 全面认识 InnoDB:从架构到 Buffer Pool 深入解析
  • TREE SEARCH FOR LLM AGENT REINFORCEMENTLEARNING
  • 网站建设分金手指排名二八铜川矿业公司网站
  • 阿里云网站建设需要多少钱cms在线
  • 把AI“编”进草垫:1KB决策树让宠物垫自己报「如厕记录」
  • 没有网站如何做SEO推广有用吗wordpress 代码优化
  • IDEA如何进行远程Debug
  • 巧用AI解决日常开发中遇到的问题!
  • 东台建设企业网站网站集约化建设进度汇报
  • 车载 Serdes:TI、Rohm 拥抱 HSMT
  • 网站制作推荐21ic项目外包平台