如果你要在Linux服务器上搭建NFS服务,需要安装的应用软件是nfs-kernel-server(Debian/Ubuntu系)或nfs-utils(RHEL/CentOS系),选哪个取决于你的操作系统发行版。
为什么NFS服务器需要单独装软件
很多刚接触Linux运维的朋友会困惑:明明系统里已经有NFS相关的命令了,为什么还要装软件?实际上Linux内核自带的只是NFS客户端功能,mount -t nfs这条命令能跑通,不代表你的服务器能对外提供存储服务,服务器端需要额外安装守护进程和工具集,才能把指定目录共享出去。
NFS的服务端软件包主要包含三个核心组件:
- rpcbind:负责端口映射,客户端通过它找到NFS服务监听的端口
- nfsd:内核态的NFS服务守护进程,处理文件读写请求
- exportfs:管理共享目录的导出列表,对应
/etc/exports配置文件
市面上除了Linux自带的NFS实现,还有OpenNFS、Unfs3等替代方案,但绝大多数生产环境用的都是内核自带的NFS服务,稳当、兼容性好、和Linux内核深度集成。
主流系统的NFS服务端软件包对比
不同Linux发行版对NFS服务端软件包的命名和管理方式有差异,这里直接给结论。
Debian/Ubuntu系:
- 服务端包名:
nfs-kernel-server - 安装命令:
sudo apt install nfs-kernel-server - 服务管理:
systemctl enable --now nfs-server - 配置文件:
/etc/exports
RHEL/CentOS/Rocky系:
- 服务端包名:
nfs-utils - 安装命令:
sudo yum install nfs-utils - 服务管理:
systemctl enable --now nfs-server - 配置文件:
/etc/exports
openSUSE系:
- 服务端包名:
nfs-kernel-server - 安装命令:
sudo zypper install nfs-kernel-server - 配置路径略有不同,主要在
/etc/exports和/etc/sysconfig/nfs
这里有个坑提醒一下:CentOS系的nfs-utils包同时包含客户端和服务端工具,所以装上之后客户端的showmount等命令也能用,但Ubuntu系需要单独装nfs-common包来获得客户端工具。
nfs-kernel-server和nfs-utils到底有什么区别
这是很多运维新手会问的问题,甚至有人以为它们是两个不同的NFS实现,实际上两者都是同一个NFS服务端程序,只是不同发行版的打包方式不同

。
nfs-kernel-server是Debian系的打包方式,它依赖Linux内核的NFSD模块,把内核模块加载、rpcbind服务、nfsd进程等整合成一个完整的服务单元,安装这个包之后,系统会自动处理内核模块的加载。
nfs-utils是红帽系的做法,它打包了NFS的工具链,包括exportfs、nfsstat、showmount、rpc.nfsd等命令,服务端和客户端工具混在一起,安装方向是dnf install nfs-utils,然后启动nfs-server服务。
核心区别一句话总结:换汤不换药,选包名看发行版,别折腾跨系统的包,网上有些教程让你在CentOS上装nfs-kernel-server,那是用了第三方源,不建议在生产环境这么干。
实际安装配置NFS服务器的完整步骤
下面以Ubuntu Server和CentOS Stream两个系统为例,演示完整的安装、配置、验证流程。
Ubuntu Server安装NFS服务端
第一步:更新软件源并安装
sudo apt update sudo apt install nfs-kernel-server -y
安装完成后,系统会自动启动rpcbind和nfs-server服务,用systemctl status nfs-server确认状态。
第二步:创建共享目录
规划一个数据目录,并设置好权限:
sudo mkdir -p /srv/nfsdata sudo chown nobody:nogroup /srv/nfsdata sudo chmod 755 /srv/nfsdata
生产环境建议把共享目录放在独立的数据盘上,配好挂载信息,避免和系统盘抢空间。
第三步:编辑exports配置文件
sudo vim /etc/exports
加入共享规则,常用格式如下:
/srv/nfsdata 192.168.1.0/24(rw,sync,no_subtree_check,no_root_squash)
字段含义说明:
- rw:客户端可读写,如果只要读就写ro
- sync:数据同步写入磁盘,安全但性能稍差
- no_subtree_check:关闭子树检查,提升稳定性
- no_root_squash:允许客户端root用户保留权限,默认会把root映射成nobody
第四步:生效配置并验证
sudo exportfs -ra sudo exportfs -v
客户端用showmount -e 服务器IP能看到共享列表,就说明服务端没问题。
CentOS Stream安装NFS服务端
第一步:安装软件并启动服务
sudo dnf install nfs-utils -y sudo systemctl enable --now nfs-server rpcbind

第二步:防火墙放行
这一步很多新手容易漏掉,导致客户端连不上:
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
第三步:同样编辑exports文件
sudo vim /etc/exports
配置规则和Ubuntu一样,
/data/share 10.0.0.0/8(rw,sync,no_root_squash)
第四步:生效并验证
sudo exportfs -ra sudo systemctl restart nfs-server
客户端挂载测试:
sudo mount -t nfs 服务器IP:/data/share /mnt
客户端需要装什么
NFS客户端也需要装软件包,Ubuntu装nfs-common,CentOS装nfs-utils,挂载时用mount -t nfs命令,或者写进/etc/fstab:
服务器IP:/srv/nfsdata /mnt/nfs nfs4 defaults,_netdev 0 0
_netdev参数能确保系统在网络就绪后才挂载NFS,避免开机卡住。
企业场景下NFS服务器选型建议
NFS虽然在性能上不如分布式存储,但在不少场景下依然是性价比最高的选择,企业里碰到的NFS服务器选型问题,可以按下面几个思路来。
小规模文件共享,内网办公环境
文件服务器给几十个员工共享文档、素材,用一台普通的Linux服务器装nfs-kernel-server就够,硬件配置方面,4核CPU、8G内存、万兆网卡,配几块SSD组RAID,跑满千兆带宽没问题,这套方案的成本主要在硬件,软件本身免费。
虚拟化环境存储
KVM、Proxmox VE的虚拟磁盘镜像放在NFS上,对IOPS要求比较高,这时候需要关注网络和存储介质,建议用10G或25G内网,SSD或NVMe做底层存储,NFS服务端可以调优一下内核参数,比如rpc_nfsd_max_threads、nfs_tcp_congestion这些,提升并发处理能力。
和Samba对比,什么时候选NFS
企业里经常有人问NFS和Samba选哪个,这个问题的答案取决于客户端平台:
- 客户端是Linux/Unix:首选NFS,内核原生支持,性能损失小
- 客户端是Windows:选Samba,NFS在Windows上的支持体验比较差
- 混合环境:可以同时跑NFS和Samba,但要注意端口和权限管理
据统计,国内互联网公司的内部存储大部分是NFS和分布式存储混用,NFS主要承担轻量级共享和备份场景。

NFS服务器装哪个应用软件的答案在企业里其实很标准化,就是上面说的那两个包,关键是选对系统、配好参数。
NFS服务端常见问题排查思路
NFS服务器装好了不等于万事大吉,实际运维中经常遇到各种问题,这里列几个高频故障和处理思路。
客户端挂载报错”Permission denied”
- 检查
/etc/exports的网段或IP是否包含客户端地址 - 确认
exportfs -ra已执行 - 查看
/var/log/messages或/var/log/syslog里的NFS相关日志
客户端挂载后很慢,访问卡顿
- 检查网络链路,iperf测一下TCP带宽
- 确认
sync参数是否影响性能,如果对数据安全性要求不高可以改成async - 查看服务端
nfsstat -s确认是否有丢包或者重传
开机自启失败
- Ubuntu检查
systemctl is-enabled nfs-server - CentOS检查
systemctl list-unit-files | grep nfs - 确认
rpcbind服务状态正常,NFS依赖它做端口映射
客户端无法开机自动挂载
/etc/fstab里确认加了_netdev参数- 确认
nfs-client.target服务已启用
Q&A:关于NFS服务器安装的典型问题
NFS服务器装哪个软件最适合新手学习?
Ubuntu + nfs-kernel-server是最友好的组合,Ubuntu的文档完善,apt安装依赖自动处理,排错时日志提示清晰,遇到问题搜索引擎能快速找到答案,CentOS的nfs-utils也不是不行,但防火墙和SELinux会多出好几道坎,容易让新手卡在权限问题上。
Windows上能用NFS服务器吗?
Windows Server自带的NFS服务端功能比较基础,只支持NFSv3,配置依靠图形界面,灵活性和性能都一般,生产环境不建议Windows做NFS服务端,除非客户端全是最老版本的Windows系统且没有其他选择,主流方案还是在Linux上部署NFS服务端,Windows作为客户端可以开启NFS功能来挂载。
NFS和iSCSI在存储场景里怎么选?
NFS是文件级共享协议,多个客户端同时读写同一个文件没问题,适合共享文档、代码、虚拟磁盘等场景,iSCSI是块级存储协议,客户端拿到的是裸磁盘,需要自己格式化文件系统,适合数据库等需要独占磁盘的场景,两者不是替代关系,NFS优势在共享语义,iSCSI优势在底层磁盘性能,选型时看具体业务对并发和一致性的要求。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/666510.html

