首先安装nfs服务,1. 服务器端安装nfs-utils或nfs-kernel-server,2. 创建共享目录并设置权限,3. 配置/etc/exports定义共享规则,4. 启动rpcbind和nfs-server并设置开机自启,5. 防火墙放行nfs、rpc-bind、mountd服务或对应端口;客户端配置:1. 安装nfs-utils或nfs-common,2. 创建挂载点,3. 使用mount命令手动挂载nfs共享目录,4. 在/etc/fstab中添加条目实现开机自动挂载并包含_netdev选项;排查问题时需检查防火墙、服务状态、网络连通性及权限设置,通过showmount和df命令验证共享与挂载状态,最终在客户端写入文件并在服务器端确认内容以测试读写功能,确认nfs共享正常工作后即可用于局域网内的文件共享场景。
配置NFS(Network File System,网络文件系统)可以实现Linux系统之间的文件共享,适合局域网内多台机器访问同一存储目录的场景。以下是基于Linux(以CentOS/RHEL或Ubuntu为例)搭建NFS服务器和客户端的完整步骤。
一、NFS服务器端配置
1. 安装NFS服务
CentOS/RHEL系统:
sudo yum install nfs-utils -y
Ubuntu/Debian系统:
sudo apt update sudo apt install nfs-kernel-server -y
安装完成后,nfs-utils 或 nfs-kernel-server 会提供核心服务。
2. 创建共享目录
选择一个目录作为NFS共享目录,例如
/data/share
:
sudo mkdir -p /data/share sudo chmod 777 /data/share # 根据实际权限需求调整
3. 配置NFS共享(/etc/exports)
编辑NFS配置文件:
sudo vim /etc/exports
添加共享规则,例如:
/data/share 192.168.1.0/24(rw,sync,no_root_squash,no_subtree_check)
参数说明:
-
rw
:允许读写
-
sync
:同步写入磁盘(更安全)
-
no_root_squash
:保留root用户权限(生产环境慎用,可改为
root_squash
提升安全)
-
no_subtree_check
:不检查子树,提升性能
可指定单个IP:
192.168.1.100,或网段:
192.168.1.0/24
4. 启动NFS服务并设置开机自启
CentOS/RHEL:
sudo systemctl enable rpcbind nfs-server sudo systemctl start rpcbind nfs-server
Ubuntu:
sudo systemctl enable nfs-kernel-server sudo systemctl start nfs-kernel-server
注意:NFS依赖
rpcbind服务,需确保其运行。
5. 防火墙放行NFS端口
CentOS/RHEL(firewalld):
sudo firewall-cmd --permanent --add-service=nfs sudo firewall-cmd --permanent --add-service=rpc-bind sudo firewall-cmd --permanent --add-service=mountd sudo firewall-cmd --reload
Ubuntu(ufw):
sudo ufw allow from 192.168.1.0/24 to any port nfs
二、NFS客户端配置
1. 安装NFS客户端工具
CentOS/RHEL:
sudo yum install nfs-utils -y
Ubuntu/Debian:
sudo apt install nfs-common -y
2. 创建挂载点
sudo mkdir -p /mnt/nfs/share
3. 手动挂载NFS共享
sudo mount -t nfs 192.168.1.10:/data/share /mnt/nfs/share
替换
192.168.1.10为NFS服务器IP
验证是否挂载成功:
df -h | grep nfs
4. 设置开机自动挂载
编辑
/etc/fstab
,添加一行:
192.168.1.10:/data/share /mnt/nfs/share nfs defaults,_netdev 0 0
_netdev表示网络就绪后再挂载,避免开机挂载失败
三、常见问题排查
-
挂载时报错
mount.nfs: Connection timed out
检查服务器防火墙、NFS服务是否运行、网络是否通(ping + telnet 端口测试)。 -
权限拒绝(Permission denied)
检查/etc/exports
中的权限设置,特别是
root_squash
和目录本身的Linux权限。
-
NFS服务无法启动
确保rpcbind
正在运行,使用
systemctl status rpcbind
查看。
-
客户端无法解析共享目录
可执行showmount -e 192.168.1.10
查看服务器导出的共享列表。
四、测试文件读写
在客户端执行:
echo "Hello NFS" > /mnt/nfs/share/test.txt
到服务器端查看:
cat /data/share/test.txt
如果内容一致,说明NFS共享正常工作。
基本上就这些。NFS搭建不复杂,但需要注意权限、防火墙和服务依赖。适合内网环境下的文件共享,如开发协同、备份存储等场景。
linux centos 防火墙 ubuntu 工具 linux系统 常见问题 rpc linux ubuntu centos debian