linux下nfs共享需三步:安装服务端(apt/yum/dnf)、配置/etc/exports导出目录并设权限、重启服务并开放防火墙端口;仅适配linux客户端,windows应选samba。

在 Linux 系统中用 NFS 共享本地目录给局域网,核心是三步:装服务、配导出、启服务。整个过程对内网 Linux 客户端友好,无需额外认证,但不适用于 Windows 直连(应选 Samba)。
安装 NFS 服务端软件
不同发行版命令略有差异:
-
Ubuntu/Debian:
sudo apt update && sudo apt install nfs-kernel-server -
RHEL/CentOS 7/8+:
sudo yum install nfs-utils或sudo dnf install nfs-utils
安装后会自动包含 rpcbind(NFS 依赖的 RPC 注册服务),多数现代系统已默认启用,若启动失败可手动运行 sudo systemctl start rpcbind。
准备共享目录并配置 /etc/exports
先创建要共享的目录(如 /srv/nfs/shared),并设好权限:
sudo mkdir -p /srv/nfs/shared sudo chown nobody:nogroup /srv/nfs/shared sudo chmod 775 /srv/nfs/shared
然后编辑 /etc/exports,添加一行规则。例如,允许局域网 192.168.1.0/24 内所有主机读写访问:
/srv/nfs/shared 192.168.1.0/24(rw,sync,no_subtree_check,no_root_squash)
常用选项说明:
- rw:允许读写;ro 表示只读
- sync:每次写操作都同步落盘,更安全;async 性能高但有丢数据风险
- no_subtree_check:跳过子目录权限检查,提升挂载稳定性(推荐开启)
- no_root_squash:客户端 root 用户保留权限(开发调试可用,生产环境慎用;默认是 root_squash,更安全)
生效配置并开放防火墙
执行以下命令使新配置立即生效:
sudo exportfs -ra sudo systemctl restart nfs-kernel-server
确保防火墙放行 NFS 所需端口(现代 NFS 主要用 nfs、rpc-bind、mountd 服务):
-
Ubuntu/Debian(ufw):
sudo ufw allow from 192.168.1.0/24 to any port nfs -
RHEL/CentOS(firewalld):
sudo firewall-cmd --permanent --add-service=nfs --add-service=rpc-bind --add-service=mountd,再执行sudo firewall-cmd --reload
客户端挂载验证(可选)
在另一台局域网 Linux 机器上测试:
sudo mkdir -p /mnt/nfs-shared sudo mount -t nfs 192.168.1.100:/srv/nfs/shared /mnt/nfs-shared
其中 192.168.1.100 是 NFS 服务器 IP。挂载成功后,df -h 可看到该共享,ls /mnt/nfs-shared 应能列出内容。
不复杂但容易忽略细节,比如没重启服务、防火墙拦截、或权限掩码导致客户端无法写入。确认每一步输出无报错,基本就能稳定共享了。











