什么是NFS?
NFS(Network File System) 是一种 网络文件共享协议,允许客户端计算机通过网络(如局域网或互联网)访问并操作远程服务器上的文件和目录,就像这些文件存储在本地的磁盘上一样。它最早由 Sun Microsystems 于 1984 年开发,现在是 Linux 和 Unix 系统中广泛使用的技术。
核心功能与特点
-
透明访问
用户无需关心文件实际存储在哪个服务器上,可直接通过挂载(mount)远程目录到本地来读写文件,支持文件锁定、权限管理等操作。
-
客户-服务器架构
服务端(Server)提供共享的文件资源,客户端(Client)通过网络请求访问这些资源。
-
跨平台兼容性
虽然最初为 Unix 设计,但现代 NFS 也支持 Windows、macOS 等系统(需额外工具)。
-
高效传输
使用基于 TCP/IP 的协议,适合高速网络环境。
典型应用场景
- 文件共享:团队协作时共享文档、代码库或设计素材。
- 集中存储:企业将数据集中存储在服务器,多台终端统一访问。
- 负载均衡:将文件分布在多台服务器上,提升访问效率。
- 备份与归档:远程备份服务器上的数据。
NFS 协议版本
- NFSv1:早期版本,已废弃。
- NFSv2:支持基本文件共享,但缺乏安全性(如加密)。
- NFSv3:当前主流版本,优化了性能和功能(如大文件支持)。
- NFSv4:最新版本,增强安全性(支持 Kerberos 认证)、状态管理(如断点续传)和更好的可扩展性。
优缺点
| 优点 | 缺点 |
|---|---|
| 文件共享简单高效 | 默认不加密传输,安全性依赖防火墙或 VPN |
| 节省本地存储空间 | 服务器故障可能导致数据不可用 |
| 支持多用户协作 | 需要合理规划权限以避免冲突 |
操作(Linux)
-
安装 NFS 服务端:
sudo apt-get install nfs-kernel-server # Debian/Ubuntu sudo yum install nfs-utils # CentOS/RHEL/ROCKYLINUX sudo dnf install nfs-utils rpcbind # CentOS/RHEL/ROCKYLINUX -
配置共享目录:
mkdir /shared sudo vim /etc/exports # 添加以下行(允许所有客户端访问 /shared 目录): /shared *(rw,sync,no_root_squash)
- 将服务器上的
/shared目录共享给 所有客户端(*)。- 客户端可以 读写(
rw)该目录。- 数据写入时强制 同步到磁盘(
sync)。- 客户端的 root 用户拥有服务器端的 root 权限(
no_root_squash)。
-
重启服务:
sudo systemctl restart nfs-server
-
客户端挂载:
sudo mount -t nfs server_ip:/shared /mnt/nfs
示例:假设服务器 IP 是 192.168.1.100,共享目录为 /data,本地挂载点是 /mnt/data:
sudo mount -t nfs 192.168.1.100:/data /mnt/data
1769

被折叠的 条评论
为什么被折叠?



