在Linux系统中搭建NFS网络存储,能够实现不同Linux主机之间的文件共享,适合多服务器协同工作、共享静态资源的场景,配置过程分为服务端和客户端两部分。

NFS服务端配置步骤
1. 安装NFS服务组件
大多数Linux发行版的官方源中都包含NFS相关包,根据发行版选择对应的安装命令:
- Debian/Ubuntu系统执行以下命令:
# 更新软件源 sudo apt update # 安装NFS服务端组件 sudo apt install nfs-kernel-server -y
- CentOS/RHEL系统执行以下命令:
# 安装NFS服务端组件 sudo yum install nfs-utils -y # 启动NFS服务并设置开机自启 sudo systemctl start nfs-server sudo systemctl enable nfs-server
2. 创建并配置共享目录
首先创建需要共享的目录,然后修改目录权限确保客户端可以正常访问:
# 创建共享目录,路径可自定义 sudo mkdir -p /data/nfs_share # 修改目录权限,允许所有用户读写执行,实际生产环境可根据需求调整 sudo chmod 777 /data/nfs_share
接下来编辑NFS的配置文件/etc/exports,添加共享规则,配置格式为共享目录路径 客户端地址(参数):
# 打开配置文件 sudo vim /etc/exports # 在文件末尾添加以下内容,允许192.168.0.0/24网段的所有客户端读写访问 /data/nfs_share 192.168.0.0/24(rw,sync,no_root_squash)
常用参数说明:
- rw:允许客户端读写访问
- sync:数据同步写入内存和硬盘,保证数据一致性
- no_root_squash:客户端root用户访问时保留root权限,若不需要可改为root_squash
- ro:只读访问,若不需要读写可替换rw参数
3. 生效配置并验证
修改完配置文件后,需要重新加载NFS配置使规则生效:
# 重新加载exports配置 sudo exportfs -r # 查看当前已经生效的共享规则 sudo exportfs -v
如果防火墙处于开启状态,还需要放行NFS相关端口,以UFW防火墙为例:
sudo ufw allow from 192.168.0.0/24 to any port nfs sudo ufw reload
NFS客户端配置步骤
1. 安装客户端组件
客户端需要安装NFS客户端工具才能挂载远程共享目录:
- Debian/Ubuntu系统:
sudo apt update sudo apt install nfs-common -y
- CentOS/RHEL系统:
sudo yum install nfs-utils -y
2. 挂载远程共享目录
首先创建本地挂载点,然后执行挂载命令:
# 创建本地挂载目录 sudo mkdir -p /mnt/nfs_local # 挂载远程NFS共享,替换为实际的服务端IP sudo mount -t nfs 192.168.0.100:/data/nfs_share /mnt/nfs_local
挂载后可以进入本地挂载目录创建测试文件,验证是否和服务端共享目录同步:
# 在客户端挂载目录创建测试文件 cd /mnt/nfs_local sudo touch test.txt # 到服务端共享目录查看是否存在该文件 ls /data/nfs_share
3. 设置开机自动挂载
若需要开机自动挂载NFS共享,需要编辑/etc/fstab文件添加挂载规则:
# 打开fstab文件 sudo vim /etc/fstab # 添加以下内容,替换为实际的服务端IP和路径 192.168.0.100:/data/nfs_share /mnt/nfs_local nfs defaults 0 0
添加完成后可以执行sudo mount -a验证配置是否有误,无报错则说明自动挂载配置生效。
常见问题排查
如果客户端挂载失败,可以先在服务端执行showmount -e 服务端IP查看共享是否对外暴露,同时检查服务端的防火墙规则和/etc/exports的客户端地址配置是否正确。若共享目录权限异常,需要确认服务端的目录权限和exports参数中的权限设置是否匹配。