nfs服务端与客户端配置核心是装对包、配对规则、通对端口;nfsv4推荐使用,仅需开放tcp 2049端口,简化防火墙配置与故障排查。

Linux 运维中配置 NFS 服务端与客户端,核心是三步:装对包、配对规则、通对端口。NFSv4 是当前推荐版本,它用固定端口(TCP 2049),省去 RPC 动态端口映射的麻烦,也更利于防火墙管理。
NFS 服务端安装与基础配置
先确认系统类型,再安装对应软件包:
- Ubuntu/Debian:sudo apt update && sudo apt install nfs-kernel-server nfs-common
- CentOS/RHEL 7/8+:sudo yum install nfs-utils 或 sudo dnf install nfs-utils
创建共享目录并设权限(例如共享 /mnt/nfs_share):
- sudo mkdir -p /mnt/nfs_share
- sudo chmod 755 /mnt/nfs_share(若需写入,可设为 777 或按实际用户调整)
编辑主配置文件 /etc/exports,添加导出规则。典型写法:
- /mnt/nfs_share 192.168.1.0/24(rw,sync,no_subtree_check,root_squash)(推荐:限制网段 + 默认安全策略)
- 避免直接用 * 或 no_root_squash,除非明确需要且网络可信
保存后立即生效配置:
- sudo exportfs -ra(重载所有导出项)
- sudo systemctl start nfs-server(RHEL/CentOS)或 sudo systemctl start nfs-kernel-server(Debian/Ubuntu)
- sudo systemctl enable nfs-server(开机自启)
NFS 客户端安装与挂载操作
客户端只需基础工具,无需运行服务:
- Ubuntu/Debian:sudo apt install nfs-common
- RHEL/CentOS:sudo yum install nfs-utils
创建本地挂载点(如 /mnt/nfs_client):
- sudo mkdir -p /mnt/nfs_client
手动挂载(测试用):
- sudo mount -t nfs4 192.168.1.10:/mnt/nfs_share /mnt/nfs_client(注意用 nfs4 类型)
- 验证:df -h 或 ls /mnt/nfs_client
设为开机自动挂载,写入 /etc/fstab:
- 192.168.1.10:/mnt/nfs_share /mnt/nfs_client nfs4 defaults,_netdev 0 0
- 加 _netdev 表示等待网络就绪后再挂载,防启动失败
防火墙与端口放行要点
NFSv4 只需开放一个端口,但务必确认服务已监听:
- 检查监听:ss -tlnp | grep :2049 或 sudo rpcinfo -p(应显示 version 4)
- UFW(Ubuntu):sudo ufw allow from 192.168.1.0/24 to any port 2049 proto tcp
- firewalld(RHEL/CentOS):sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port port="2049" protocol="tcp" accept',再 reload
如果仍连不上,检查 SELinux(RHEL/CentOS)是否启用:临时关闭测试 sudo setenforce 0;长期方案是设布尔值 sudo setsebool -P nfs_export_all_ro 1 nfs_export_all_rw 1。
常见问题快速排查
挂载失败时,按顺序查这几项:
- 服务端 exportfs -v 是否列出目标路径?没列说明配置未生效
- 客户端能否 ping 通服务端 IP?网络层不通先解决网络
- 客户端执行 showmount -e 192.168.1.10 是否返回共享列表?无响应多为防火墙或服务未启
- 挂载报错 “access denied”:检查 /etc/exports 中客户端 IP 是否匹配、权限是否含 rw、目录权限是否允许访问











