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
2. 创建共享目录
sudo mkdir -p /nfs/share
sudo chmod 777 /nfs/share # 根据需要设置权限
3. 配置共享目录权限
编辑配置文件 /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:子目录检查(建议关闭)
4. 生效配置
sudo exportfs -arv # 重新加载配置
5. 防火墙放行
# 开放 NFS 相关服务
sudo firewall-cmd --permanent --add-service={nfs,rpc-bind,mountd}
sudo firewall-cmd --reload
6. 验证共享列表
showmount -e localhost
输出示例:
Export list for localhost:
/nfs/share 192.168.1.0/24
二、NFS 客户端配置
1. 安装客户端工具
sudo yum install -y nfs-utils
2. 创建本地挂载点
sudo mkdir -p /mnt/nfs_client
3. 查看服务器共享目录
showmount -e 192.168.1.10 # 替换为 NFS 服务器 IP
4. 手动挂载 NFS
sudo mount -t nfs 192.168.1.10:/nfs/share /mnt/nfs_client
5. 验证挂载
df -hT | grep nfs
输出示例:
bash
Copy Code
192.168.1.10:/nfs/share nfs4 50G 5.2G 45G 11% /mnt/nfs_client
6. 开机自动挂载
编辑 /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)
2. 权限被拒绝
确保服务器端 /etc/exports 配置了客户端的 IP 或网段
检查共享目录的本地文件系统权限(chmod/chown)
3. 性能优化建议
在 /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(更安全),并通过防火墙限制访问。