NFS全称是Network File System,即网络文件系统,是linux和类unix系统中用来在网络上共享目录的一种协议。通过NFS,一台服务器可以把自己的某个目录开放给网络中的其他客户端,客户端挂载之后就能像操作本地磁盘一样读取和修改里面的文件。NFS依赖RPC机制来完成通信,因此在配置时通常需要先启动rpcbind服务。

linux NFS是什么
NFS是一种分布式文件系统协议,最早由Sun公司开发,现在已经成为linux环境里最普遍的文件共享方案之一。它采用客户端和服务端模型:服务端负责导出(export)目录,客户端通过挂载(mount)把远程目录映射到本地路径。对应用程序来说,远程文件操作和本地文件没有明显区别。
NFS的主要特点
- 配置简单,linux发行版基本都自带支持
- 性能较好,适合内网大量机器共享静态资源
- 权限基于用户ID,需要注意 UID 映射问题
- 依赖RPC服务,端口不固定,需rpcbind协助
linux NFS怎么用
下面以常见的CentOS或Ubuntu环境为例,说明如何部署一个最基础的NFS共享。
服务端配置
首先在服务端安装NFS相关软件包,并启动rpcbind与nfs服务:
# 以Ubuntu为例安装服务端 sudo apt update sudo apt install -y nfs-kernel-server rpcbind # 创建共享目录 sudo mkdir -p /data/nfs_share sudo chmod 777 /data/nfs_share # 配置导出规则 echo "/data/nfs_share *(rw,sync,no_subtree_check)" | sudo tee -a /etc/exports # 重新加载导出表并启动服务 sudo exportfs -ra sudo systemctl enable rpcbind nfs-kernel-server sudo systemctl restart rpcbind nfs-kernel-server
其中/etc/exports文件用来定义哪些目录共享给哪些主机,括号里的参数控制读写权限和同步方式。
客户端挂载
客户端同样需要安装工具并创建本地挂载点,然后使用mount命令挂载远程目录:
# 安装客户端工具 sudo apt install -y nfs-common # 创建挂载点 sudo mkdir -p /mnt/nfs_data # 挂载服务端共享,假设服务端IP为192.168.0.1 sudo mount -t nfs 192.168.0.1:/data/nfs_share /mnt/nfs_data # 查看是否挂载成功 df -h | grep nfs_data
若希望开机自动挂载,可以把下面内容加入/etc/fstab:
192.168.0.1:/data/nfs_share /mnt/nfs_data nfs defaults 0 0
常用参数说明
| 参数 | 含义 |
|---|---|
| rw | 允许客户端读写 |
| ro | 只读共享 |
| sync | 同步写入,数据更安全 |
| no_root_squash | 允许客户端root保留权限,不安全 |
| all_squash | 所有用户映射为匿名用户 |
使用注意事项
在实际使用linux NFS时,应当尽量把共享限制在可信内网,避免暴露在公网。另外,由于NFS以UID识别权限,服务端和客户端相同用途的用户最好保持UID一致,否则容易出现权限拒绝。遇到挂载失败时,可先用showmount -e 服务端IP检查导出列表,再查看防火墙是否放通了相关端口。
NFS不是加密协议,传输内容明文可见,敏感数据建议结合SSH隧道或改用其他加密共享方案。
掌握linux NFS是什么及怎么用,能够让你在多台linux主机之间快速搭建稳定的文件共享服务,是日常运维中非常基础也非常有用的能力。