核心步骤概览
安装 NFS 服务器角色
配置 NFS 共享
设置权限(客户端访问控制)
防火墙配置
从客户端测试连接
详细部署步骤
第 1 步:安装 NFS 服务器角色
以管理员身份登录 Windows Server 2025。
打开
服务器管理器。
点击
“管理” ->
“添加角色和功能”。
在
“开始之前” 页面点击
“下一步”。
选择
“基于角色或基于功能的安装” ->
“下一步”。
从服务器池中选择目标服务器 ->
“下一步”。
在
“服务器角色” 列表中,展开
“文件和存储服务”。
- 再展开 “文件和 iSCSI 服务”。
- 勾选 “NFS 服务器”。
- 在弹出的窗口中点击 “添加功能”。
点击
“下一步”,直到进入
“确认” 页面。
点击
“安装”,等待安装完成,然后点击
“关闭”。
第 2 步:创建并配置 NFS 共享
现在,您可以将一个现有文件夹共享为 NFS 共享。
方法 A:通过服务器管理器(图形界面)
在服务器管理器中,点击左侧的
“文件和存储服务” ->
“共享”。
在右侧的
“任务” 下拉菜单中,选择
“新建共享”。
选择配置文件:
- 选择 “NFS 共享 - 快速” 或 “NFS 共享 - 高级”。对于大多数场景,“快速”即可。
- 点击 “下一步”。
选择共享位置:
- 选择要共享的服务器和卷/路径。您可以输入自定义路径(例如
D:\Data\NFS_Share)。
- 点击 “下一步”。
指定共享名称:
- 输入共享名称(例如
NFS_Share)。客户端将通过 \\服务器IP或名称\NFS_Share 访问。
- 点击 “下一步”。
配置身份验证方法:
- Kerberos v5 身份验证:安全性高,适用于域环境。需要配置 Kerberos。
- 没有身份验证:最常用,依赖 IP 地址或主机名进行权限控制。
- 根据您的环境选择,点击 “下一步”。
方法 B:通过 PowerShell(快速高效)
# 1. 创建文件夹(如果需要)
New-Item -ItemType Directory -Path "D:\Data\NFS_Share" -Force
# 2. 创建 NFS 共享
New-NfsShare -Name "NFS_Share" -Path "D:\Data\NFS_Share"
# 查看已创建的共享
Get-NfsShare
第 3 步:设置 NFS 共享权限(最关键的一步)
NFS 权限独立于 Windows NTFS 权限,用于控制哪些客户端可以访问以及访问级别(读写/只读)。
方法 A:通过共享属性 GUI
在
“共享” 列表中,右键单击您创建的 NFS 共享 ->
“属性”。
切换到
“NFS 权限” 选项卡。
点击
“添加”。
在
“添加权限” 对话框中配置:
- 客户端/组:
- 可以输入单个 IP(如
192.168.1.100)
- 可以输入 IP 范围(如
192.168.1.0/255.255.255.0)
- 可以输入主机名(需确保能解析)
- 访问类型:“读写” 或 “只读”。
- 编码:保持默认 “ANSI” 即可,除非客户端环境特殊。
- 允许根目录访问:谨慎勾选。勾选后,客户端的 root 用户将拥有 Windows 的“管理员”权限。通常不勾选(更安全)。
- 权限:根据需要勾选 “允许所有访问” 或自定义 “允许的访问权限”。
点击
“确定” 保存。
方法 B:通过 PowerShell
# 为特定 IP 授予读写权限(不启用根目录访问)
Grant-NfsSharePermission -Name "NFS_Share" -ClientName 192.168.1.100 -ClientType Host -Permission ReadWrite
# 为整个子网授予只读权限
Grant-NfsSharePermission -Name "NFS_Share" -ClientName 192.168.1.0/24 -ClientType Network -Permission ReadOnly
# 查看已配置的权限
Get-NfsSharePermission -Name "NFS_Share"
第 4 步:配置 Windows 防火墙
为了使 NFS 流量通过,需要在 Windows 防火墙中启用相关规则。
打开
“高级安全 Windows 防火墙”。
点击
“入站规则”。
在右侧找到并启用以下三条规则(通常在
文件和打印机共享 (NFS-TCP) 和
文件和打印机共享 (NFS-UDP) 下):
- NFS 服务器 (TCP-In)
- NFS 服务器 (UDP-In)
- NFS 锁定管理器 (TCP-In)
- NFS 锁定管理器 (UDP-In)
使用 PowerShell 一键启用:
# 启用 NFS 相关的防火墙规则
Get-NetFirewallRule -DisplayName "*NFS*" | Where-Object {$_.Enabled -eq 'False'} | Enable-NetFirewallRule
# 确认规则已启用
Get-NetFirewallRule -DisplayName "*NFS*" | Select-Object DisplayName, Enabled
第 5 步:从客户端测试连接
从 Linux 客户端测试:
# 1. 安装 NFS 客户端(如果未安装)
# 对于 Ubuntu/Debian:
sudo apt update && sudo apt install nfs-common -y
# 对于 RHEL/CentOS/Fedora:
sudo dnf install nfs-utils -y
# 2. 创建本地挂载点
sudo mkdir -p /mnt/nfs_win
# 3. 挂载 NFS 共享
# 使用 TCP 协议(推荐,更稳定)
sudo mount -t nfs -o rw,hard,intr,proto=tcp 192.168.1.10:/NFS_Share /mnt/nfs_win
# 或使用默认参数
sudo mount 192.168.1.10:/NFS_Share /mnt/nfs_win
# 4. 查看挂载结果
df -h | grep nfs
mount | grep nfs
# 5. 测试读写(根据您的权限)
sudo touch /mnt/nfs_win/test_file.txt
ls -la /mnt/nfs_win/
# 6. 卸载
sudo umount /mnt/nfs_win
从 Windows 客户端测试(Windows 也包含 NFS 客户端):
# 1. 在“启用或关闭 Windows 功能”中启用“NFS 客户端”
# 2. 在 PowerShell 中挂载
mount -o rw,hard,intr,anon \\192.168.1.10\NFS_Share Z:
# 或使用 New-PSDrive
New-PSDrive -Name "Z" -PSProvider FileSystem -Root "\\192.168.1.10\NFS_Share" -Persist
故障排除与提示
访问被拒绝:
- 检查 NFS 共享权限中的 客户端 IP/网段 是否输入正确。
- 检查 Windows 防火墙规则是否已启用。
- 在客户端使用
showmount -e <服务器IP> 命令查看服务器导出的共享列表。
性能问题:
- 建议在挂载时指定
proto=tcp 以获得更可靠的连接。
- 对于大型文件传输,可以调整
rsize 和 wsize 参数(例如 -o rsize=65536,wsize=65536)。
权限映射(匿名访问):
- 默认情况下,NFS 客户端上的用户 UID/GID 会映射到 Windows 上的一个匿名用户(通常是
Anonymous)。
- 要控制文件所有权,需要配置 Server for NFS 的身份映射(更高级的配置,通常需要 Active Directory 或本地用户映射)。
持久化挂载(Linux):
通过以上步骤,您应该能够在 Windows Server 2025 上成功部署并运行一个基本的 NFS 服务器。根据您的具体需求(如身份验证、高级权限等),可能需要进行额外的配置。