nfs挂载失败核心原因包括:①服务端nfs-server/rpcbind未启动或配置未重载;②客户端未安装nfs-utils/nfs-common;③防火墙未放行2049/111等端口;④/exports路径错误、ip不匹配或网络不通;⑤selinux、nfs版本或挂载选项冲突。

Linux 下挂载 NFS 远程共享目录,核心是确保客户端能发现、连接并稳定访问服务端导出的路径。关键不在“能不能挂”,而在于“为什么挂不上”——绝大多数失败源于服务端未导出、网络不通、防火墙拦截或权限不匹配。
确认服务端已正确导出且服务就绪
挂载前必须验证服务端状态,否则客户端所有操作都是徒劳:
- 登录 NFS 服务器,执行 cat /etc/exports,确认目标目录(如
/data)已按格式声明,例如:/data 192.168.100.124(rw,sync,no_root_squash) - 运行 systemctl is-active nfs-server,输出应为
active;若非如此,需启动:systemctl start nfs-server rpcbind - 用 showmount -e localhost 在服务端本地测试导出是否生效;再在客户端执行 showmount -e 192.168.100.124(替换为实际服务端 IP),成功返回列表才说明 RPC 可达、配置已加载
客户端安装工具并测试连通性
NFS 客户端依赖基础工具包和底层网络支持:
- Ubuntu/Debian 执行:sudo apt install nfs-common;CentOS/RHEL 执行:sudo yum install nfs-utils
- 用 ping -c 3 192.168.100.124 确认基础网络可达
- 检查防火墙是否放行 NFS 相关服务:firewall-cmd --list-services | grep -E "nfs|rpc-bind|mountd";若无输出,执行:firewall-cmd --add-service=nfs --permanent && firewall-cmd --reload
手动挂载远程目录
挂载命令简洁,但选项影响可用性与稳定性:
- 先创建本地挂载点:sudo mkdir -p /mnt/nfs-data
- 执行挂载:sudo mount -t nfs 192.168.100.124:/data /mnt/nfs-data
- 常用增强选项建议追加:
-o rw,hard,intr,timeo=14,rsize=32768,wsize=32768,其中hard保证断连后重试而非报错,intr允许中断挂起操作 - 挂载后用 df -h | grep nfs 和 ls /mnt/nfs-data 验证可读写
配置开机自动挂载(fstab)
避免每次重启后手动挂载,需写入 /etc/fstab,但要注意容错设计:
- 在
/etc/fstab末尾添加一行:
192.168.100.124:/data /mnt/nfs-data nfs defaults,_netdev,soft,timeo=14,retrans=3 0 0 -
_netdev表示该设备依赖网络,系统会等待网络就绪后再尝试挂载;soft可防止启动卡死(服务端不可达时跳过) - 添加后务必执行:sudo mount -a 测试语法是否正确,无报错才代表配置有效











