Linux怎么配置NFS文件共享 Linux跨服务器目录挂载详解

Linux怎么配置NFS文件共享 Linux跨服务器目录挂载详解

系统教程

NFS配置失败主因是rpcbind与nfs启动顺序错误、防火墙阻断111/2049等端口、/etc/exports权限写法不规范(如IP段误用*、括号空格、未执行exportfs -r)。

NFS 配置失败,八成卡在 RPC 启动顺序、防火墙端口或 /etc/exports 权限写法上 —— 不是服务没起,而是它根本没注册成功。

rpcbind 和 nfs 服务必须按顺序启动

NFS 依赖 RPC 注册端口,rpcbind 必须先于 nfs 启动,否则 showmount -e 会报 clnt_create: RPC: Program not registered

  • 先停掉两个服务:systemctl stop nfs rpcbind
  • 再严格按序启动:systemctl start rpcbind && systemctl start nfs
  • 验证注册是否成功:rpcinfo -p localhost 应该能看到 nfsmountdnlockmgr 等条目,且端口非 0
  • CentOS 7+ 默认用 systemd 管理,但旧脚本(如 service nfs restart)可能绕过依赖检查,导致顺序错乱

/etc/exports 的权限写法容易踩坑

看似简单的配置行,实际每个字段都影响挂载成败。常见错误是把 IP 段写成 192.168.1.* 或漏掉括号。

  • 客户端地址必须是 CIDR(如 192.168.1.0/24)、单 IP(如 192.168.1.100)或主机名,不支持通配符 * 单独使用
  • 权限选项必须用小括号包裹,且中间不能有空格:/home/nfs 192.168.1.0/24(rw,sync,no_subtree_check) ✅;/home/nfs 192.168.1.0/24 (rw, sync)
  • no_root_squash 危险:客户端 root 写入会直接映射为服务端 root,生产环境慎用;默认 root_squash 更安全
  • 改完后必须运行 exportfs -r 生效,仅重启服务不够 —— 这步常被跳过

客户端 mount 失败时先查端口连通性

报错 clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host),基本等于“防火墙拦住了”,不是网络不通。

Vimeo

Vimeo平台的在线视频生成工具

下载

  • NFSv4 只需开放 TCP 2049,但 NFSv3 还要放开 rpcbind(111)、mountdnlockmgr 等动态端口
  • 最稳妥方式:用 rpcinfo -p 服务器IP 查出所有端口,再在服务端防火墙放行;或临时关防火墙验证(systemctl stop firewalld
  • 挂载命令别漏协议版本:mount -t nfs4 服务器:/path /mnt 比默认 v3 更简洁、端口更固定
  • -o soft,timeo=10,retrans=3 避免挂载卡死,尤其跨网段或高延迟链路

/etc/fstab 自动挂载要注意超时和依赖

直接写进 /etc/fstab 的 NFS 条目,系统启动时若网络未就绪或服务未响应,会导致开机卡在挂载阶段。

  • 必须加 _netdev 选项,告诉 systemd 等网络就绪后再挂载:192.168.1.100:/home/nfs /mnt nfs defaults,_netdev,soft,timeo=10 0 0
  • 避免用 defaults —— 它隐含 hard 模式,一旦服务端宕机,进程会永久阻塞在 lsdf
  • 测试 fstab 条目前,先手动 mount -a,看是否报错;不要等重启才发现挂载失败
  • 如果服务端可能离线,建议改用 automount(autofs),按需挂载,更健壮

真正麻烦的从来不是配置本身,而是 RPC 注册状态看不见、防火墙规则摸不着、fstab 里一个选项就能让系统启动卡住 —— 这些点不提前验,排障时间翻倍。

本文地址:https://www.sztg.com.cn/article/644797.html

如非特殊说明,本站内容均来自于网友自主分享,如有任何问题均请联系我们进行处理!

猜您喜欢