跳转到主内容
新派编程网 - 新潮编程理念,全新技术课堂!

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
应该能看到
nfs
、
mountd
、
nlockmgr
等条目,且端口非 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)
,基本等于“防火墙拦住了”,不是网络不通。 Trae linux Trae Linux 官方版本现已全面上线,开发者可直接访问 Trae 官网(trae.cn 国内版或 trae.ai 国际版)获取专属安装包。该版本完美适配主流 Linux 发行版,提供 .deb(适配 Ubuntu/Debian)、.rpm(适配 RHEL/Fedora)以及通用 .tar.gz 格式,并全面支持 x64 与 ARM64 架构。 下载 NFSv4 只需开放 TCP 2049,但 NFSv3 还要放开
rpcbind
(111)、
mountd
、
nlockmgr
等动态端口 最稳妥方式:用
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
模式,一旦服务端宕机,进程会永久阻塞在
ls
或
df
测试 fstab 条目前,先手动
mount -a
,看是否报错;不要等重启才发现挂载失败 如果服务端可能离线,建议改用 automount(
autofs
),按需挂载,更健壮 真正麻烦的从来不是配置本身,而是 RPC 注册状态看不见、防火墙规则摸不着、fstab 里一个选项就能让系统启动卡住 —— 这些点不提前验,排障时间翻倍。

相关文章