Настройка NFS сервера на Windows Server 2025/2022/2019

Сетевой протокол NFS (Network File System) широко используется для предоставления общего доступа к файлам и папкам в среде Linux/Unix. NFS часто используется в системах виртуализации, когда нужно организовать общее хранилище для виртуальных машин, или для хранилищ резервных копий. Также NFS хорошо подходит, когда нужно организовать передачу файлов через общие сетевые каталоги в гетерогенных средах, включающих Windows хосты. В этой статье мы рассмотрим, как установить роль NFS, опубликовать общий сетевой каталог NFS на Windows Server, настроить маппинг пользователей и смонтировать NFS директорию с клиента Linux.

Встроенная поддержка NFS сервера имеется во всех поддерживаемых версия Windows Server (2025,2022,2019) реализуется с помощью роли Server for NFS. Основные особенности:

  • NFS сервер в Windows Server поддерживает все версии протокола NFS: NFSv2, NFSv3 и последнюю версию NFSv4
  • Для доступа к NFS используется фиксированный RPC порт 2049
  • Упрощённая идентификация реализуется за счёт использования плоского файла сопоставления (mapping file)

Установка роли Server for NFS в Windows Server

В Windows Server включены как сервер, так и клиент NFS (в отличии от дестокпных редакций Windows 10 и 11, в которых есть только клиент NFS).

Роль NFS хранилища в Windows Server можно установить через Server Manager (Add roles -> Server roles -> File and Storage Services -> Server for NFS) или с помощью PowerShell:

Install-WindowsFeature -Name FS-NFS-Service -IncludeManagementTools

Установить роль Server for NFS в Windows

Install-WindowsFeature -Name FS-NFS-Service

Для взаимодействия клиентов с NFS сервером по протоколу NFSv4 на сервере должен быть открыт порт TCP/ UDP 2049 и TCP/UDP 111 (Portmap for UNIX Software).

Проверьте, что в Windows Defender Firewall включено правило, разрешающее доступ к серверу по протоколу NFS:

Get-NetFirewallRule -DisplayName "Server for NFS*","*Portmap*"|ft

Должны быть включены следующие правила:

  • Server for NFS (NFS-TCP-In) — Microsoft-Windows-NFS-ServerCore-NfsSvc-NFS-TCP-In
  • Server for NFS (NFS-UDP-In) — Microsoft-Windows-NFS-ServerCore-NfsSvc-NFS-UDP-In
  • Portmap for UNIX-based Software (TCP-In)
  • Portmap for UNIX-based Software (UDP-In)

Правила файервола для NFS сервера на Windows

Для работы NFSv3 требуется открытый динамический RPC диапазон и TCP 135 (RPC Endpoint Mapper).

Создать сетевой каталог NFS в Windows Server

Опубликовать общий сетевой каталог NFS в Windows можно из графической консоли Server Manager:

  1. Разверните роль File and Storage Services в Server Manager
  2. Перейдите в раздел Shares и выберите Tasks -> New Share -> NFS Share — Quick Создать каталог NFS на Windows
    Режим NFS Share Advanced может использовать только совместно с ролью File Server Resource Manager (FSRM). В этом режиме можно настроить детальный контроль доступа, квоты, классификацию файлов и ряд других расширенных опций.
  3. Затем укажите имя и локальный путь к директории, которую вы хотите опубликовать по NFS. Путь к папке и имя NFS каталога
  4. Далее нужно выбрать тип аутентификации. NFS сервер на Windows поддерживает Kerberos v5 аутентификацию.Для клиентов, которые не умеют аутентифицировать по Kerberos, нужно включить опцию No server authentication (AUTH_SYS). Это менее безопасный UNIX способ аутентификации, в котором используются UID и GID для доступа.

    Опция Enable unmapped user access – позволяет получить доступ к NFS пользователям, для которых не настроено прямое сопоставление с учетной записью Windows (без этой опции обязательно должно быть настроено сопоставление пользователя с пользователем Windows). При этом можно включить идентификацию пользователей по их UID или GID на UNIX устройстве (Allow unmapped user access by UID/GID) или разрешить анонимный доступ без проверки (Allow anonymous access).

    Способы аутентификации в NFS на Windows

  5. Далее настраиваются разрешения для общей папки NFS. Нажмите кнопку Add, чтобы открыть окно настройки прав. Настройки доступа к директории NFS
  6. Здесь можно выбрать, каком хостам или группам, будет разрешено подключаться к NFS папке. Например, в поле Host можно отраничить доступ по IP или DNS адресу клиента. Чтобы разрешить доступ всем устройствам, нужно выбрать All Mahcines. В настройке кодировки нужно выбрать ANSI и права доступа: No access, Read only или Read+Write Дать права чтения и записи на NFS директорию по IP
  7. Далее можно настроить NTFS права доступа к папке
    NTFS разрешения папки определяют базовый уровень доступа к файлам и папкам на сервере, а NFS-права через маппинг пользователей и разрешения NFS — регулируют доступ в рамках сетевого взаимодействия NFS.
  8. Подтвердите создание сетевой папки NFS.

Также можно создать общий сетевой каталога NFS с помощью PowerShell:

New-NfsShare -Name NFSShare2 -Path "C:\nfsshare2" -AllowRootAccess $false -Permission ReadWrite

New-NfsShare

Чтобы вывести NFS права доступа к папке:

Get-NfsSharePermission nfsshare

Изменить права доступа к NFS шаре:

Grant-NfsSharePermission -Name NFSShare2 -ClientName 192.168.1.100 -ClientType host -LanguageEncoding ANSI

Настройка NFS сервера в Windows

Текущие настройки NFS сервера можно вывести с помощью команды:

Get-NfsServerConfiguration

Get-NfsServerConfiguration

State                            : Running
LogActivity                      :
CharacterTranslationFile         : Not Configured
DirectoryCacheSize (KB)          : 128
HideFilesBeginningInDot          : Disabled
EnableNFSV2 : True EnableNFSV3 : True EnableNFSV4 : True EnableAuthenticationRenewal : True AuthenticationRenewalIntervalSec : 600 NlmGracePeriodSec : 45 MountProtocol : {TCP, UDP} NfsProtocol : {TCP, UDP} NisProtocol : {TCP, UDP} NlmProtocol : {TCP, UDP} NsmProtocol : {TCP, UDP} PortmapProtocol : {TCP, UDP} MapServerProtocol : {TCP, UDP} PreserveInheritance : False NetgroupCacheTimeoutSec : 30 UnmappedUserAccount : WorldAccount : Everyone AlwaysOpenByName : False GracePeriodSec : 240 LeasePeriodSec : 120 OnlineTimeoutSec : 180

Чтобы изменить настройки сервера NFS, используется команда Set-NfsServerConfiguration. Например, следующая команда отключит поддержку протокола NFSv2.

Set-NfsServerConfiguration -EnableNFSV2 $false

Также для управления настройками NFS сервера в Windows можно использовать графическую MMC оснастку Services for Network File System MMC ( nfsmgmt.msc ). Эта оснастка позволяет выбрать транспортный протокол NFS ( по умолчанию TCP+UDP), включить логирование NFS доступа, управлять блокировками файлов и просматривать активные подключения.

Настройка транспортного протокола NFS: TCP + UDP

логирование NFS доступа

Рассмотрим, как настроить сопоставления (маппинг) пользователя из AD с соответствующим GUI и UID пользователя Linux.

Получить UID и GID пользователя в Linux можно командой:

$ id username

Вывод покажет UID пользователя, основной GID и группы, в которые он входит. В нашем примере это 1000 и 1000.

Linux: получить UID пользователя и основной GID

Устанавливаем Active Directory в качестве хранилища маппинга:

Set-NfsMappingStore -EnableADLookup $true -ADDomainName "winitpro.local"

Проверить текущее хранилище:

Get-NfsMappingStore

Создать новую запись маппинга для группы «NFS_users» в Active Directory и присвоить ей Unix GID 1000.

New-NfsMappedIdentity -MappingStore AD -GroupName "NFS_users" -GroupIdentifier 1000

Проверяем сопоставление для группы:

Get-NfsMappedIdentity -MappingStore AD -AccountType Group -AccountName "NFS_users"

Связываем учетную запись Windows пользователя с Unix-идентификаторами:

Set-NfsMappedIdentity -MappingStore AD -UserName "kbuldogov" -UserIdentifier 1000 -GroupIdentifier 100

Вывести настройки маппинга для пользователя

Get-NfsMappedIdentity -AccountName "kbuldogov" -AccountType User

Таким образом вы можете настроить сопоставление Linux пользователей с аккаунтами Windows (AD).

Проверяем подключение к NFS серверу Windows с клиента

Теперь можно протестировать подключение к NFS серверу на Windows Server с любого клиента. В этом примере мы используем хост с Debian:

Установить пакет с компонентами NFS клиента для Linux:

$ sudo apt-get install -y nfs-common

Создать точку монтирования:

$ sudo mkdir /mnt/nfs

Монтируем NFS каталог с удаленного сервера в указанную директорию:

$ sudo mount 192.168.158.147:/nfsshare /mnt/nfs

Проверьте, что вы видите все файлы в NFS директории на удаленном сервере:

mount NFS каталога с linux клиента

Чтобы отмонтировать NFS шару, выполните:

$ umount /mnt/nfs/

Для автоматического подключения NFS директории, можно добавить запись в fstab.

Созданную NFS шару можно использовать, например, как NFS-datastore в среде виртуализации VMware ESXi.

Предыдущая статья Следующая статья


Комментариев: 4 Оставить комментарий

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)