NFS CENTOS系统 安装配置

在 CentOS 上搭建 NFS(Network File System)服务器和客户端的完整步骤如下:

‌一、NFS 服务器端配置(以 CentOS 7/8 为例)‌

  1. 安装 NFS 服务

安装 NFS 服务包

sudo yum install -y nfs-utils rpcbind

启动服务并设置开机自启

sudo systemctl enable --now rpcbind

sudo systemctl enable --now nfs-server

  1. 创建共享目录

sudo mkdir -p /nfs/share

sudo chmod 777 /nfs/share # 根据需要设置权限

  1. 配置共享目录权限

编辑配置文件 /etc/exports:

sudo vim /etc/exports

添加内容(按需选择配置):

示例1:允许整个网段访问(读写)

/nfs/share 192.168.1.0/24(rw,sync,no_root_squash,no_subtree_check)

示例2:允许特定IP访问(只读)

/nfs/share 192.168.1.100(ro,sync)

示例3:允许所有客户端访问(生产环境慎用)

/nfs/share *(rw,sync)

‌参数说明‌:

rw:读写权限

ro:只读权限

sync:同步写入磁盘

no_root_squash:允许 root 用户保留权限

subtree_check:子目录检查(建议关闭)

  1. 生效配置

sudo exportfs -arv # 重新加载配置

  1. 防火墙放行

开放 NFS 相关服务

sudo firewall-cmd --permanent --add-service={nfs,rpc-bind,mountd}

sudo firewall-cmd --reload

  1. 验证共享列表

showmount -e localhost

输出示例:

Export list for localhost:

/nfs/share 192.168.1.0/24

‌二、NFS 客户端配置‌

  1. 安装客户端工具

sudo yum install -y nfs-utils

  1. 创建本地挂载点

sudo mkdir -p /mnt/nfs_client

  1. 查看服务器共享目录

showmount -e 192.168.1.10 # 替换为 NFS 服务器 IP

  1. 手动挂载 NFS

sudo mount -t nfs 192.168.1.10:/nfs/share /mnt/nfs_client

  1. 验证挂载

df -hT | grep nfs

输出示例:

bash

Copy Code

192.168.1.10:/nfs/share nfs4 50G 5.2G 45G 11% /mnt/nfs_client

  1. 开机自动挂载

编辑 /etc/fstab:

sudo vim /etc/fstab

添加一行:

192.168.1.10:/nfs/share /mnt/nfs_client nfs defaults 0 0

测试配置:

sudo mount -a # 无报错即生效

‌三、常见问题排查‌

  1. 客户端挂载失败

‌检查服务状态‌:

服务器端

systemctl status nfs-server

rpcinfo -p 192.168.1.10 # 查看 RPC 服务

‌关闭 SELinux(临时)‌:

sudo setenforce 0 # 服务器和客户端都执行

‌永久关闭 SELinux‌(编辑 /etc/selinux/config 设置 SELINUX=disabled)

  1. 权限被拒绝

确保服务器端 /etc/exports 配置了客户端的 IP 或网段

检查共享目录的本地文件系统权限(chmod/chown)

  1. 性能优化建议

在 /etc/exports 中添加 async 参数提升写入速度(数据丢失风险增加)

客户端挂载时使用 noatime 减少元数据更新:

/etc/fstab 示例

192.168.1.10:/nfs/share /mnt/nfs_client nfs rw,noatime 0 0

‌四、安全增强建议‌

‌限制访问范围‌:

在 /etc/exports 中指定最小授权 IP 范围(如 192.168.1.0/24)

‌使用 Kerberos 认证‌(高级):

/nfs/share *.example.com(rw,sec=krb5p)

‌NFSv4 专属端口‌:

服务器端 /etc/sysconfig/nfs

RQUOTAD_PORT=875

LOCKD_TCPPORT=32803

LOCKD_UDPPORT=32769

MOUNTD_PORT=892

STATD_PORT=662

STATD_OUTGOING_PORT=2020

提示:生产环境建议使用 NFSv4(更安全),并通过防火墙限制访问。

相关推荐
Shadow(⊙o⊙)几秒前
Linux网络——文件与网络的连接桥梁struct sock {
linux·运维·网络
其实防守也摸鱼10 分钟前
教育信息技术应用创新---基础软件信息赛(题库)
大数据·运维·人工智能·web安全·自动化
新时代牛马13 分钟前
Linux 性能调优与追踪完整篇:ftrace、perf、eBPF从采样到落地验证
linux·运维·服务器
sunoo-22921 分钟前
【网络编程 + 数据库】select 与 epoll 核心区别详解 + SQLite 入门到 C 接口全攻略
linux·网络·数据库·vscode·学习·sqlite
zbyyd26 分钟前
Linux 系统编程 :select/epoll 多路复用与 SQLite 数据库实战
linux·数据库·sqlite
虎王物联33 分钟前
Docker BuildKit多阶段构建:IoT固件交叉编译流水线实战
运维·物联网·ci/cd·docker·容器·物联网嵌入式
Mortalbreeze34 分钟前
深入理解 Linux IO 模型(二):多路复用——select
linux·运维·服务器·网络·tcp/ip
养生技术人37 分钟前
Oracle OCP认证考试题目详解082系列第17题
运维·数据库·sql·oracle·ocp
koi77u1 小时前
嵌入式学习———sqlite数据表
linux·数据库·学习·sqlite
笑梦无境1 小时前
nginx安装(5)
linux·运维·nginx