欢迎光临本地信息咨询网
详情描述

核心步骤概览

安装 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 以获得更可靠的连接。
  • 对于大型文件传输,可以调整 rsizewsize 参数(例如 -o rsize=65536,wsize=65536)。

权限映射(匿名访问)

  • 默认情况下,NFS 客户端上的用户 UID/GID 会映射到 Windows 上的一个匿名用户(通常是 Anonymous)。
  • 要控制文件所有权,需要配置 Server for NFS 的身份映射(更高级的配置,通常需要 Active Directory 或本地用户映射)。

持久化挂载(Linux)

  • 编辑 /etc/fstab 文件,添加一行:
    192.168.1.10:/NFS_Share  /mnt/nfs_win  nfs  rw,hard,intr,proto=tcp  0  0

通过以上步骤,您应该能够在 Windows Server 2025 上成功部署并运行一个基本的 NFS 服务器。根据您的具体需求(如身份验证、高级权限等),可能需要进行额外的配置。